diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/internal/.buildinfo b/docs/internal/.buildinfo new file mode 100644 index 000000000..2308112d7 --- /dev/null +++ b/docs/internal/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 1e1cc9837abebb0b899faa758c1244cd +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/internal/_sources/index.rst.txt b/docs/internal/_sources/index.rst.txt new file mode 100644 index 000000000..691977093 --- /dev/null +++ b/docs/internal/_sources/index.rst.txt @@ -0,0 +1,23 @@ +chpldoc documentation +===================== + +Contents: + +.. toctree:: + :hidden: + + self + +.. toctree:: + :maxdepth: 1 + :glob: + + modules/** + + +Indices and tables +================== + +* :ref:`genindex` +* :chpl:chplref:`chplmodindex` +* :ref:`search` diff --git a/docs/internal/_sources/modules/internal/ArrayViewRankChange.rst.txt b/docs/internal/_sources/modules/internal/ArrayViewRankChange.rst.txt new file mode 100644 index 000000000..6483b1a2e --- /dev/null +++ b/docs/internal/_sources/modules/internal/ArrayViewRankChange.rst.txt @@ -0,0 +1,250 @@ +.. default-domain:: chpl + +.. module:: ArrayViewRankChange + :noindex: + +ArrayViewRankChange +=================== +**Usage** + +.. code-block:: chapel + + use ArrayViewRankChange; + + +or + +.. code-block:: chapel + + import ArrayViewRankChange; + +.. class:: ArrayViewRankChangeDist : BaseDist + + .. attribute:: var downDistPid: int + + .. attribute:: var downDistInst + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. method:: proc downDist + + .. method:: override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds) + + .. method:: proc dsiClone() + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: override proc dsiDestroyDist() + + .. method:: override proc dsiIsLayout() param + + .. method:: proc dsiEqualDMaps( that: ArrayViewRankChangeDist(?)) + +.. class:: ArrayViewRankChangeDom : BaseRectangularDom(?) + + .. attribute:: var upDomInst: unmanaged(DefaultRectangularDom(rank, idxType, strides)?) + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. attribute:: const distPid + + .. attribute:: const distInst + + .. method:: proc dist + + .. attribute:: var downDomPid: int + + .. attribute:: var downDomInst: downDomType(collapsedDim.size, idxType, strides, distInst)? + + .. method:: proc downrank param + + .. method:: proc upDom : upDomInst!.type + + .. method:: proc downDom : downDomInst!.type + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSetIndices( inds) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !localeModelHasSublocales && chpl__isDROrDRView(downDom) && __primitive("resolves", upDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !localeModelHasSublocales && !chpl__isDROrDRView(downDom) && __primitive("resolves", downDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc chpl_rankChangeConvertLoDTupleToHiD( tup) + + .. method:: proc chpl_rankChangeConvertHiDTupleToLoD( tup) + + .. method:: proc downIdxToUpIdx( downIdx) + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: override proc dsiMyDist() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc isRankChangeDomainView() param + + .. method:: proc _getActualDomain() + + .. method:: override proc dsiDestroyDom() + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiIndexOrder( i) + + .. method:: override proc dsiCreateIndexBuffer( size) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc dsiGetReprivatizeData() + + .. method:: proc dsiReprivatize( other, reprivatizeData) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: ArrayViewRankChangeArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: const dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. attribute:: const indexCache + + .. attribute:: param ownsArrInstance + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, const collapsedDim, const idx, param ownsArrInstance: bool) + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isRankChangeArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool where this.arr.doiCanBulkTransferRankChange() + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool where this.arr.doiCanBulkTransferRankChange() + +.. function:: proc chpl_rankChangeConvertIdx( i: integral, collapsedDim, idx) + +.. function:: proc chpl_rankChangeConvertIdx( i, collapsedDim, idx) + +.. function:: proc chpl_rankChangeConvertIdxHiDToLoD( i, collapsedDim, idx, param rank) + +.. function:: proc chpl_rankChangeConvertDownToUp( dims, param uprank, collapsedDim) + +.. function:: proc chpl_rankChangeConvertDom( dims, param uprank, collapsedDim, idx) + diff --git a/docs/internal/_sources/modules/internal/ArrayViewReindex.rst.txt b/docs/internal/_sources/modules/internal/ArrayViewReindex.rst.txt new file mode 100644 index 000000000..d74e57f77 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ArrayViewReindex.rst.txt @@ -0,0 +1,244 @@ +.. default-domain:: chpl + +.. module:: ArrayViewReindex + :noindex: + +ArrayViewReindex +================ +**Usage** + +.. code-block:: chapel + + use ArrayViewReindex; + + +or + +.. code-block:: chapel + + import ArrayViewReindex; + +.. class:: ArrayViewReindexDist : BaseDist + + .. attribute:: const downDistPid: int + + .. attribute:: const downDistInst + + .. attribute:: const updom + + .. attribute:: const downdomPid + + .. attribute:: const downdomInst + + .. method:: proc downDist + + .. method:: override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds) + + .. method:: proc dsiClone() + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: override proc dsiDestroyDist() + + .. method:: override proc dsiIsLayout() param + +.. class:: ArrayViewReindexDom : BaseRectangularDom(?) + + .. attribute:: var updomInst: unmanaged(DefaultRectangularDom(rank, idxType, strides)?) + + .. attribute:: var downdomPid + + .. attribute:: var downdomInst + + .. attribute:: const distPid + + .. attribute:: const distInst + + .. attribute:: var ownsDownDomInst = false + + .. method:: proc dist + + .. method:: proc updom : updomInst!.type + + .. method:: proc downdomtype(param rank: int, type idxType, param strides: bool) type + + .. method:: proc downdom : downdomInst.type + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSetIndices( inds) + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && chpl__isDROrDRView(downdom) && __primitive("resolves", updom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !chpl__isDROrDRView(downdom) && __primitive("resolves", downdom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc chpl_reindexConvertLoDTupleToHiD( tup) + + .. method:: proc chpl_reindexConvertHiDTupleToLoD( tup) + + .. method:: proc downIdxToUpIdx( downIdx: integral) + + .. method:: proc downIdxToUpIdx( i) + + .. method:: override proc dsiMyDist() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: override proc isReindexDomainView() param + + .. method:: proc _getActualDomain() + + .. method:: override proc dsiDestroyDom() + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiIndexOrder( i) + + .. method:: override proc dsiCreateIndexBuffer( size) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc dsiGetReprivatizeData() + + .. method:: proc dsiReprivatize( other, reprivatizeData) + +.. class:: ArrayViewReindexArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: const dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const indexCache + + .. attribute:: param ownsArrInstance + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, param ownsArrInstance: bool) + + .. method:: proc downdom : arr.dom.type + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isReindexArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool + +.. function:: proc chpl_reindexConvertIdxDim( i, updom, downdom, dim: int) + +.. function:: proc chpl_reindexConvertIdx( i: integral, updom, downdom) + +.. function:: proc chpl_reindexConvertIdx( i, updom, downdom) + +.. function:: proc chpl_reindexConvertDom( dims, updom, downdom) + +.. function:: proc chpl_reindexConvertDomMaybeSlice( dims, updom, downdom) + diff --git a/docs/internal/_sources/modules/internal/ArrayViewSlice.rst.txt b/docs/internal/_sources/modules/internal/ArrayViewSlice.rst.txt new file mode 100644 index 000000000..7fdb244d2 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ArrayViewSlice.rst.txt @@ -0,0 +1,116 @@ +.. default-domain:: chpl + +.. module:: ArrayViewSlice + :noindex: + +ArrayViewSlice +============== +**Usage** + +.. code-block:: chapel + + use ArrayViewSlice; + + +or + +.. code-block:: chapel + + import ArrayViewSlice; + +.. data:: param chpl_debugSerializeSlice = false + +.. data:: param chpl_serializeSlices = false + +.. class:: ArrayViewSliceArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: var dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const indexCache + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance) + + .. method:: proc chpl__rvfMe() param + + .. method:: proc chpl__serialize() where chpl__rvfMe() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isSliceArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool + diff --git a/docs/internal/_sources/modules/internal/Atomics.rst.txt b/docs/internal/_sources/modules/internal/Atomics.rst.txt new file mode 100644 index 000000000..f276449d2 --- /dev/null +++ b/docs/internal/_sources/modules/internal/Atomics.rst.txt @@ -0,0 +1,392 @@ +.. default-domain:: chpl + +.. module:: Atomics + :noindex: + +Atomics +======= +**Usage** + +.. code-block:: chapel + + use Atomics; + + +or + +.. code-block:: chapel + + import Atomics; + + + +For example, the following code declares an atomic variable ``x`` that +stores an ``int``: + +.. code-block:: chapel + + var x: atomic int; + +Such an atomic variable that is declared without an initialization expression +will store the default value of the contained type (i.e. ``0`` or ``false``). + +Atomic variables can also be declared with an initial value: + +.. code-block:: chapel + + var y: atomic int = 1; + +Similarly, a temporary ``atomic`` value can be created by casting to atomic: + +.. code-block:: chapel + + var one: int = 1; + ... one : atomic int... // creates an `atomic int` initialized with 1 + +Assignment is supported between atomic variables as well: + +.. code-block:: chapel + + var x: atomic int = 1; + var y: atomic int = 2; + + x = y; // equivalent to x.write(y.read()) + +Chapel currently supports atomic operations for bools, all supported sizes of +signed and unsigned integers, as well as all supported sizes of reals. Note +that not all operations are supported for all atomic types. The supported types +are listed for each operation. + + *Rationale*. + + The choice of supported atomic variable types as well as the atomic + operations was strongly influenced by the C11 standard. + +Most atomic methods accept an optional argument named ``order`` of type +``memoryOrder``. The ``order`` argument is used to specify the ordering +constraints of atomic operations. The supported memoryOrder values are: + + * memoryOrder.relaxed + * memoryOrder.acquire + * memoryOrder.release + * memoryOrder.acqRel + * memoryOrder.seqCst + + +See also :ref:`Chapter-Memory_Consistency_Model` and in particular +:ref:`non_sc_atomics` for more information on the meaning of these memory +orders. + +Unless specified, the default for the memoryOrder parameter is +memoryOrder.seqCst. + + *Implementors’ note*. + + Not all architectures or implementations may support all memoryOrder + values. In these cases, the implementation should default to a more + conservative ordering than specified. + + +.. function:: proc chpl_atomic_thread_fence( order: memory_order) + +.. function:: proc atomic_fence( order: memory_order = memory_order_seq_cst) + +.. function:: proc atomicFence(param order: memoryOrder = memoryOrder.seqCst) + + An atomic fence that establishes an ordering of non-atomic and relaxed + atomic operations. + +.. function:: proc chpl__processorAtomicType(type valType) type + +.. function:: proc chpl__atomicType(type valType) type + +.. function:: proc chpl_comm_ensure_progress() : void + +.. record:: AtomicBool : writeSerializable + + .. method:: proc type valType type + + .. method:: proc valType type + + .. attribute:: var _v: externT(bool) + + .. method:: proc ref init_helper( val: bool) + + .. method:: proc init() + + .. method:: proc init=( other: AtomicBool) + + .. method:: proc init=( other: bool) + + .. method:: proc ref deinit() + + .. method:: proc const read(param order: memoryOrder = memoryOrder.seqCst) : bool + + + Returns the stored value. + + + .. method:: proc ref write( val: bool, param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `val` as the new value. + + + .. method:: proc ref exchange( val: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `val` as the new value and returns the original value. + + + .. method:: proc ref compareExchange(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored, otherwise + updates `expected` to the original value. + + + .. method:: proc ref compareExchange(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareExchangeWeak(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Similar to :proc:`compareExchange`, except that this function may + return `false` even if the original value was equal to `expected`. This + may happen if the value could not be updated atomically. + + This weak version is allowed to spuriously fail, but when + compareExchange is already in a loop, it can offer better + performance on some platforms. + + + .. method:: proc ref compareExchangeWeak(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder) + + .. method:: proc ref compareAndSwap( expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + .. warning:: + + 'compareAndSwap' is unstable + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored. + + + .. method:: proc ref testAndSet(param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `true` as the new value and returns the old value. + + + .. method:: proc ref clear(param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `false` as the new value. + + + .. method:: proc const waitFor( val: bool, param order: memoryOrder = memoryOrder.seqCst) : void + + + Waits until the stored value is equal to `val`. The implementation may + yield the running task while waiting. + + + .. method:: proc const serialize( writer, ref serializer) throws + +.. function:: operator :( rhs: bool, type t: AtomicBool) + +.. record:: AtomicT : writeSerializable + + .. attribute:: type valType + + .. attribute:: var _v: externT(valType) + + .. method:: proc ref init_helper( val: valType) + + .. method:: proc init(type valType) + + .. method:: proc init=(const ref other: this.type) + + .. method:: proc init=( other: this.type.valType) + + .. method:: proc ref deinit() + + .. method:: proc const read(param order: memoryOrder = memoryOrder.seqCst) : valType + + + Returns the stored value. + + + .. method:: proc ref write( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `val` as the new value. + + + .. method:: proc ref exchange( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + Stores `val` as the new value and returns the original value. + + + .. method:: proc ref compareExchange(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored, otherwise + updates `expected` to the original value. + + + .. method:: proc ref compareExchange(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareExchangeWeak(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Similar to :proc:`compareExchange`, except that this function may + return `false` even if the original value was equal to `expected`. This + may happen if the value could not be updated atomically. + + This weak version is allowed to spuriously fail, but when + compareExchange is already in a loop, it can offer better + performance on some platforms. + + + .. method:: proc ref compareExchangeWeak(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareAndSwap( expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + .. warning:: + + 'compareAndSwap' is unstable + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored. + + + .. method:: proc ref fetchAdd( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Adds `val` to the original value and stores the result. Defined for + integer and real atomic types. + + + .. method:: proc ref add( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Adds `val` to the original value and stores the result. Defined for + integer and real atomic types. + + + .. method:: proc ref fetchSub( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Subtracts `val` from the original value and stores the result. Defined + for integer and real atomic types. + + + .. method:: proc ref sub( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Subtracts `val` from the original value and stores the result. Defined + for integer and real atomic types. + + + .. method:: proc ref fetchOr( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``|`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref or( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``|`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref fetchAnd( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``&`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref and( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``&`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref fetchXor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``^`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref xor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``^`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc const waitFor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Waits until the stored value is equal to `val`. The implementation may + yield the running task while waiting. + + + .. method:: proc const serialize( writer, ref serializer) throws + +.. function:: operator :( rhs, type t: AtomicT) where rhs.type == t.valType + +.. method:: operator AtomicBool. = (ref a: AtomicBool, const ref b: AtomicBool) + + Equivalent to ``a.write(b.read())`` + +.. method:: operator AtomicBool. = (ref a: AtomicBool, b) + +.. method:: operator AtomicT. = (ref a: AtomicT, const ref b: AtomicT) + + Equivalent to ``a.write(b.read())`` + +.. method:: operator AtomicT. = (ref a: AtomicT, b) + +.. method:: operator AtomicT.+( a: AtomicT, b) + +.. method:: operator AtomicT.-( a: AtomicT, b) + +.. method:: operator AtomicT.*( a: AtomicT, b) + +.. method:: operator AtomicT./( a: AtomicT, b) + +.. method:: operator AtomicT.%( a: AtomicT, b) + diff --git a/docs/internal/_sources/modules/internal/AtomicsCommon.rst.txt b/docs/internal/_sources/modules/internal/AtomicsCommon.rst.txt new file mode 100644 index 000000000..9392bf67e --- /dev/null +++ b/docs/internal/_sources/modules/internal/AtomicsCommon.rst.txt @@ -0,0 +1,54 @@ +.. default-domain:: chpl + +.. module:: AtomicsCommon + :noindex: + +AtomicsCommon +============= +**Usage** + +.. code-block:: chapel + + use AtomicsCommon; + + +or + +.. code-block:: chapel + + import AtomicsCommon; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: atomic_refcnt + + .. attribute:: var _cnt: chpl__processorAtomicType(int) + + .. method:: proc init() + + .. method:: proc init=( other: atomic_refcnt) + + .. method:: proc inc( cnt = 1) + + .. method:: proc dec() : int(64) + + .. method:: proc read() : int(64) + diff --git a/docs/internal/_sources/modules/internal/ByteBufferHelpers.rst.txt b/docs/internal/_sources/modules/internal/ByteBufferHelpers.rst.txt new file mode 100644 index 000000000..d3a84fe36 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ByteBufferHelpers.rst.txt @@ -0,0 +1,78 @@ +.. default-domain:: chpl + +.. module:: ByteBufferHelpers + :noindex: + +ByteBufferHelpers +================= +**Usage** + +.. code-block:: chapel + + use ByteBufferHelpers; + + +or + +.. code-block:: chapel + + import ByteBufferHelpers; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. type:: type byteType = uint(8) + +.. type:: type bufferType = c_ptr(byteType) + +.. type:: type locIdType = chpl_nodeID.type + +.. data:: config param chpl_stringGrowthFactor = 1.5 + +.. function:: proc chpl_string_comm_get( dest: bufferType, src_loc_id: int(64), src_addr: bufferType, len: integral) + +.. function:: proc bufferAlloc( requestedSize) : (bufferType, int) + +.. function:: proc bufferRealloc( buf: bufferType, requestedSize: int) + +.. function:: proc bufferEnsureSize( buf: bufferType, currentSize: int, requestedSize: int) + +.. function:: proc bufferCopyRemote( src_loc_id: int(64), src_addr: bufferType, len: int) : bufferType + +.. function:: proc bufferCopyLocal( src_addr: bufferType, len: int) + +.. function:: proc bufferFree( buf: bufferType) + +.. function:: proc bufferCopy( buf: bufferType, off: int, len: int, loc: locIdType) + +.. function:: proc bufferMemcpy( dst: bufferType, src_loc: int(64), src: bufferType, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferMemcpyLocal( dst: bufferType, src: bufferType, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferMemmoveLocal( dst: bufferType, src, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferGetByte( buf: bufferType, off: int, loc: locIdType) + +.. function:: proc bufferEquals( buf1: bufferType, off1: int, loc1: locIdType, buf2: bufferType, off2: int, loc2: locIdType, len: int) + +.. function:: proc bufferEqualsLocal( buf1: bufferType, off1: int, buf2: bufferType, off2: int, len: int) + +.. function:: proc _strcmp( buf1: bufferType, len1: int, loc1: locIdType, buf2: bufferType, len2: int, loc2: locIdType) + diff --git a/docs/internal/_sources/modules/internal/Bytes.rst.txt b/docs/internal/_sources/modules/internal/Bytes.rst.txt new file mode 100644 index 000000000..e82b22821 --- /dev/null +++ b/docs/internal/_sources/modules/internal/Bytes.rst.txt @@ -0,0 +1,883 @@ +.. default-domain:: chpl + +.. module:: Bytes + :noindex: + +Bytes +===== +**Usage** + +.. code-block:: chapel + + use Bytes; + + +or + +.. code-block:: chapel + + import Bytes; + + +.. type:: bytes + +Supports the following methods: + +.. method:: proc type bytes.createBorrowingBuffer( x: bytes) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the internal buffer of + another :type:`bytes`. If the buffer is freed before the :type:`bytes` + returned from this function, accessing it is undefined behavior. + + :arg x: The :type:`bytes` to borrow the buffer from + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createBorrowingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createBorrowingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptr(?t), length = strLen(x)) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + `c_ptr`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: `c_ptr` to borrow as a buffer + :type x: `c_ptr(int(8))` or `c_ptr(uint(8))` + + :arg length: Length of `x`, excluding the optional terminating null byte. + Defaults to the number of bytes in `x` before the terminating + null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + :class:`~CTypes.c_ptrConst`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: `c_ptrConst` to borrow as a buffer + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x`, excluding the optional terminating null byte. + Defaults to the number of bytes in `x` before the terminating + null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. function:: proc chpl_createBytesWithLiteral( buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int) + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptr(?t), length: int, size: int) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + `c_ptr`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: Buffer to borrow + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the buffer `x`, excluding the optional terminating + null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptr(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a `c_ptr`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The `c_ptr` to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createAdoptingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a :class:`~CTypes.c_ptrConst`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The `c_ptrConst` to take ownership of + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x`'s buffer, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptr(?t), length: int, size: int) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a `c_ptr`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the buffer `x`, excluding the optional terminating + null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createCopyingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` by creating a copy of a buffer + + :arg x: The :class:`~CTypes.c_ptrConst` to copy + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createCopyingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createCopyingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createCopyingBuffer( x: c_ptr(?t), length = strLen(x), size = length + 1) : bytes + + + Creates a new :type:`bytes` by creating a copy of a buffer. + + :arg x: The buffer to copy + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. record:: _bytes : writeSerializable, readDeserializable + + .. attribute:: var buffLen: int = 0 + + .. attribute:: var buffSize: int = 0 + + .. attribute:: var buff: bufferType = nil + + .. attribute:: var isOwned: bool = true + + .. attribute:: var locale_id = chpl_nodeID + + .. method:: proc init() + + .. method:: proc ref deinit() + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserialize) throws + + .. method:: proc init=( b: bytes) + + .. method:: proc init=( b: string) + + .. method:: proc init=( b: c_string) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + + .. method:: proc byteIndices + + .. method:: proc param size param + + .. method:: proc param numBytes param + + .. method:: proc param this(param i: int) param: int + + .. method:: proc param item(param i: int) param: bytes + + .. method:: proc item( i: byteIndex) : bytes + + .. method:: proc this( i: byteIndex) : uint(8) + + .. method:: proc param toByte() param: uint(8) + + .. method:: proc param byte(param i: int) param: uint(8) + + .. method:: proc join(const ref x: [] bytes) : bytes + + .. method:: proc join(const ref x) where isTuple(x) + + .. method:: proc join( ir: _iteratorRecord) : bytes + +.. method:: proc bytes.size : int + + + :returns: The number of bytes in the :type:`bytes`. + + +.. method:: proc bytes.indices : range + + + :returns: The indices that can be used to index into the bytes + (i.e., the range ``0.. 0``, remove ``columns`` leading whitespace characters + from each line. Tabs are not considered whitespace when ``columns > 0``, + so only leading spaces are removed. + + :arg columns: The number of columns of indentation to remove. Infer + common leading whitespace if ``columns == 0``. + + :arg ignoreFirst: When ``true``, ignore first line when determining the + common leading whitespace, and make no changes to the + first line. + + :returns: A new :type:`bytes` with indentation removed. + + +.. method:: proc bytes.decode( policy = decodePolicy.strict) : string throws + + + Returns a UTF-8 string from the given :type:`bytes`. If the data is + malformed for UTF-8, `policy` argument determines the action. + + :arg policy: - `decodePolicy.strict` raises an error + - `decodePolicy.replace` replaces the malformed character + with UTF-8 replacement character + - `decodePolicy.drop` drops the data silently + - `decodePolicy.escape` escapes each illegal byte with + private use codepoints + + :throws: Throws a :class:`~Errors.DecodeError` if `decodePolicy.strict` is + passed to the `policy` argument and the :type:`bytes` contains non-UTF-8 + characters. + + :returns: A UTF-8 string. + + +.. method:: proc bytes.isUpper() : bool + + + Checks if all the characters in the :type:`bytes` are uppercase + (A-Z) in ASCII. Ignores uncased (not a letter) and extended ASCII + characters (decimal value larger than 127) + + :returns: * `true`--there is at least one uppercase and no lowercase characters + * `false`--otherwise + + +.. method:: proc bytes.isLower() : bool + + + Checks if all the characters in the :type:`bytes` are lowercase + (a-z) in ASCII. Ignores uncased (not a letter) and extended ASCII + characters (decimal value larger than 127) + + :returns: * `true`--there is at least one lowercase and no uppercase characters + * `false`--otherwise + + +.. method:: proc bytes.isSpace() : bool + + + Checks if all the characters in the :type:`bytes` are whitespace + (' ', '\\t', '\\n', '\\v', '\\f', '\\r') in ASCII. + + :returns: * `true` -- when all the characters are whitespace. + * `false` -- otherwise + + +.. method:: proc bytes.isAlpha() : bool + + + Checks if all the characters in the :type:`bytes` are alphabetic + (a-zA-Z) in ASCII. + + :returns: * `true` -- when the characters are alphabetic. + * `false` -- otherwise + + +.. method:: proc bytes.isDigit() : bool + + + Checks if all the characters in the :type:`bytes` are digits (0-9) + in ASCII. + + :returns: * `true` -- when the characters are digits. + * `false` -- otherwise + + +.. method:: proc bytes.isAlnum() : bool + + + Checks if all the characters in the :type:`bytes` are alphanumeric + (a-zA-Z0-9) in ASCII. + + :returns: * `true` -- when the characters are alphanumeric. + * `false` -- otherwise + + +.. method:: proc bytes.isPrintable() : bool + + + Checks if all the characters in the :type:`bytes` are printable in + ASCII. + + :returns: * `true` -- when the characters are printable. + * `false` -- otherwise + + +.. method:: proc bytes.isTitle() : bool + + + Checks if all uppercase characters are preceded by uncased characters, + and if all lowercase characters are preceded by cased characters in ASCII. + + :returns: * `true` -- when the condition described above is met. + * `false` -- otherwise + + +.. method:: proc bytes.toLower() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to lowercase. + + :returns: A new :type:`bytes` with all uppercase characters (A-Z) + replaced with their lowercase counterpart in ASCII. Other + characters remain untouched. + + +.. method:: proc bytes.toUpper() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to uppercase. + + :returns: A new :type:`bytes` with all lowercase characters (a-z) + replaced with their uppercase counterpart in ASCII. Other + characters remain untouched. + + +.. method:: proc bytes.toTitle() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to title capitalization. + + :returns: A new :type:`bytes` with all cased characters(a-zA-Z) + following an uncased character converted to uppercase, and all + cased characters following another cased character converted to + lowercase. + + +.. function:: operator :( x: string, type t: bytes) + +.. function:: operator :( x: c_string, type t: bytes) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + +.. method:: operator bytes.+=(ref lhs: bytes, const ref rhs: bytes) : void + + + Appends the :type:`bytes` `rhs` to the :type:`bytes` `lhs`. + + +.. method:: proc ref bytes.appendByteValues(x: uint(8) ...) : void + + .. warning:: + + 'bytes.appendByteValues' is unstable and may change in the future + + + Appends the one or more byte values passed as arguments to + the :type:`bytes` `this`. + + +.. method:: proc bytes.toHexadecimal( uppercase: bool = false, type resultType = bytes) : resultType + + .. warning:: + + 'bytes.toHexadecimal' is unstable and may change in the future + + + Computes a hexadecimal representation for a ``bytes`` + and returns it as a ``bytes``. + + +.. method:: operator bytes. = (ref lhs: bytes, rhs: bytes) : void + + + Copies the :type:`bytes` `rhs` into the :type:`bytes` `lhs`. + + +.. method:: operator bytes. = (ref lhs: bytes, rhs_c: c_string) : void + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + + + Copies the c_string `rhs_c` into the bytes `lhs`. + + Halts if `lhs` is a remote bytes. + + +.. method:: operator bytes.+( s0: bytes, s1: bytes) : bytes + + + :returns: A new :type:`bytes` which is the result of concatenating + `s0` and `s1` + + +.. method:: operator bytes.+(param s0: bytes, param s1: bytes) param + +.. function:: operator *( s: bytes, n: integral) : bytes + + + :returns: A new :type:`bytes` which is the result of repeating `s` + `n` times. If `n` is less than or equal to 0, an empty bytes is + returned. + + The operation is commutative. + For example: + + .. code-block:: chapel + + writeln(b"Hello! "*3); + or + writeln(3*b"Hello! "); + + Results in:: + + Hello! Hello! Hello! + + +.. function:: operator *( n: integral, s: bytes) + +.. method:: operator bytes.==( a: bytes, b: bytes) : bool + +.. method:: operator bytes.!=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.<( a: bytes, b: bytes) : bool + +.. method:: operator bytes.>( a: bytes, b: bytes) : bool + +.. method:: operator bytes.<=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.>=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.==(param s0: bytes, param s1: bytes) param + +.. method:: operator bytes.!=(param s0: bytes, param s1: bytes) param + +.. method:: operator bytes.<=(param a: bytes, param b: bytes) param + +.. method:: operator bytes.>=(param a: bytes, param b: bytes) param + +.. method:: operator bytes.<(param a: bytes, param b: bytes) param + +.. method:: operator bytes.>(param a: bytes, param b: bytes) param + +.. method:: proc bytes.hash() : uint + +.. method:: operator bytes.<=>(ref x: bytes, ref y: bytes) + diff --git a/docs/internal/_sources/modules/internal/BytesCasts.rst.txt b/docs/internal/_sources/modules/internal/BytesCasts.rst.txt new file mode 100644 index 000000000..2a37112ae --- /dev/null +++ b/docs/internal/_sources/modules/internal/BytesCasts.rst.txt @@ -0,0 +1,62 @@ +.. default-domain:: chpl + +.. module:: BytesCasts + :noindex: + +BytesCasts +========== +**Usage** + +.. code-block:: chapel + + use BytesCasts; + + +or + +.. code-block:: chapel + + import BytesCasts; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: operator :( x: bool, type t: bytes) + +.. function:: operator :( x: bytes, type t: bool) throws + +.. function:: operator :( x: integral, type t: bytes) + +.. function:: operator :( x: bytes, type t: integral) throws + +.. function:: proc _real_cast_helper( x: real(64), param isImag: bool) : bytes + +.. function:: operator :( x: chpl_anyreal, type t: bytes) + +.. function:: operator :( x: chpl_anyimag, type t: bytes) + +.. function:: operator :( x: bytes, type t: chpl_anyreal) throws + +.. function:: operator :( x: bytes, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_anycomplex, type t: bytes) + +.. function:: operator :( x: bytes, type t: chpl_anycomplex) throws + diff --git a/docs/internal/_sources/modules/internal/BytesStringCommon.rst.txt b/docs/internal/_sources/modules/internal/BytesStringCommon.rst.txt new file mode 100644 index 000000000..52b1df965 --- /dev/null +++ b/docs/internal/_sources/modules/internal/BytesStringCommon.rst.txt @@ -0,0 +1,252 @@ +.. default-domain:: chpl + +.. module:: BytesStringCommon + :noindex: + +BytesStringCommon +================= +**Usage** + +.. code-block:: chapel + + use BytesStringCommon; + + +or + +.. code-block:: chapel + + import BytesStringCommon; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: const CHPL_SHORT_STRING_SIZE: c_int + +.. record:: chpl__inPlaceBuffer + +.. function:: proc chpl__getInPlaceBufferData(const ref data: chpl__inPlaceBuffer) : bufferType + +.. function:: proc chpl__getInPlaceBufferDataForWrite(ref data: chpl__inPlaceBuffer) : bufferType + +.. record:: __serializeHelper + + .. attribute:: var buffLen: int + + .. attribute:: var buff: bufferType + + .. attribute:: var size: int + + .. attribute:: var locale_id: chpl_nodeID.type + + .. attribute:: var shortData: chpl__inPlaceBuffer + + .. attribute:: var cachedNumCodepoints: int + +.. enum:: enum decodePolicy { strict, replace, drop, escape } + + + ``decodePolicy`` specifies what happens when there is malformed characters + when decoding a :mod:`Bytes` into a UTF-8 :record:`~String.string`. + + - **strict**: default policy; raise error + - **replace**: replace with UTF-8 replacement character + - **drop**: silently drop data + - **escape**: escape invalid data by replacing each byte 0xXX with + codepoint 0xDCXX + + + .. enumconstant:: enum constant strict + + .. enumconstant:: enum constant replace + + .. enumconstant:: enum constant drop + + .. enumconstant:: enum constant escape + +.. enum:: enum encodePolicy { unescape, pass } + + + ``encodePolicy`` specifies what happens when there is escaped non-UTF8 + bytes when encoding a :record:`~String.string` into a + :mod:`Bytes`. + + - **pass**: default policy; copy directly + - **unescape**: recover the original data from the escaped data + + + .. enumconstant:: enum constant unescape + + .. enumconstant:: enum constant pass + +.. data:: config param showStringBytesInitDeprWarnings = true + +.. data:: param surrogateEscape = 0xdc: byteType + +.. function:: proc getCStr(const ref x: ?t) : c_ptrConst(c_char) + +.. function:: proc decodeByteBuffer( buff: bufferType, length: int, policy: decodePolicy) throws + + + This function is called by `bytes.decode` and string factory functions that + take a C array as the buffer. + + It iterates over the buffer, trying to decode codepoints out of it. If there + is an illegal sequence that doesn't correspond to any valid codepoint, the + behavior is determined by the `policy` argument. See the `decodePolicy` + documentation above for the meaning of different policies. + + +.. function:: proc decodeHelp( buff: c_ptr(uint(8)), buffLen: int, offset: int, allowEsc: bool) + + + This function decodeHelp is used to create a wrapper for + qio_decode_char_buf* and qio_decode_char_buf_esc and return + the value of errorCode , cp and nBytes. + + :arg buff: Buffer to decode + + :arg buffLen: Size of buffer + + :arg offset: Starting index of read buffer, + + :arg allowEsc: Choice between "qio_decode_char_buf" + and "qio_decode_char_buf_esc" that allows + escaped sequences in the string + + :returns: Tuple of decodeRet, chr and nBytes + decodeRet : error code : errorCode + chr : corresponds to codepoint + nBytes : number of bytes of corresponding UTF-8 encoding + + +.. function:: proc initWithBorrowedBuffer(ref x: ?t, other: t) + +.. function:: proc initWithBorrowedBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc initWithOwnedBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc initWithNewBuffer(ref x: ?t, other: t) + +.. function:: proc initWithNewBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc getView(const ref x: ?t, r: range(?), param checkMisaligned = true) throws + +.. function:: proc getSlice(const ref x: ?t, r: range(?)) throws + +.. function:: proc getIndexType(type t) type + +.. function:: proc doReplace(const ref x: ?t, needle: t, replacement: t, count: int = -1) : t + +.. function:: proc doSplitHelp(const ref localx: ?t, const ref localSep: t, const maxsplit: int = -1, const ignoreEmpty: bool = false, ref start: getIndexType(t), const splitCount: int) : t + +.. iterfunction:: iter doSplit(const ref x: ?t, sep: t, maxsplit: int = -1, ignoreEmpty: bool = false) : t + +.. function:: proc doSplitWSNoEncHelp(const ref localx: ?t, maxsplit: int = -1, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex) : t + +.. iterfunction:: iter doSplitWSNoEnc(const ref x: ?t, maxsplit: int = -1) : t + +.. function:: proc doSearchNoEnc(const ref x: ?t, needle: t, region: range(?), param count: bool, param fromLeft: bool = true) + +.. function:: proc startsEndsWith(const ref x: ?t, needles, param fromLeft: bool) : bool where isHomogeneousTuple(needles) && needles[0].type == t + +.. function:: proc doJoinIterator(const ref x: ?t, ir: _iteratorRecord) : t + +.. function:: proc doJoin(const ref x: ?t, const ref S) : t where isTuple(S) || isArray(S) + +.. function:: proc doPartition(const ref x: ?t, sep: t) : 3*(t) + +.. function:: proc doDedent(const ref x: ?t, columns = 0, ignoreFirst = true) : t + +.. function:: proc resizeBufferForAppend(ref lhs: ?t, n: int) : int + +.. function:: proc doAppend(ref lhs: ?t, const ref rhs: t) + +.. function:: proc doAppendSomeBytes(ref lhs: ?t, n: int, byteCArr: c_array(uint(8), ?), nCodepoints: int) + + Take n bytes from byteCArr and append it to the string/bytes + in lhs + +.. function:: proc resizeBuffer(ref lhs: ?t, buffLen: int) + +.. function:: proc reinitWithNewBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0) + +.. function:: proc reinitWithOwnedBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0) + +.. function:: proc doAssign(ref lhs: ?t, rhs: t) + +.. function:: proc doMultiply(const ref x: ?t, n: integral) + +.. function:: proc doConcat( s0: ?t, s1: t) : t + +.. function:: proc doStripNoEnc(const ref x: ?t, chars: t, leading: bool, trailing: bool) : t + +.. function:: proc doEq( a: ?t1, b: ?t2) + +.. function:: proc doLessThan( a: ?t1, b: ?t2) + +.. function:: proc doGreaterThan( a: ?t1, b: ?t2) + +.. function:: proc doLessThanOrEq( a: ?t1, b: ?t2) + +.. function:: proc doGreaterThanOrEq( a: ?t1, b: ?t2) + +.. function:: proc getHash( x: ?t) + +.. function:: proc countNumCodepoints( x: string) + +.. function:: proc countNumCodepoints( buff: bufferType, buffLen: int) + +.. function:: proc isInitialByte( b: uint(8)) : bool + + + Returns true if the argument is a valid initial byte of a UTF-8 + encoded multibyte character. + + +.. function:: proc _findStartOfNextCodepointFromByte( x: string, i: byteIndex) + + + Returns the byte index of the beginning of the first codepoint starting from + (and including) i + + +.. function:: proc _cleanupForNumericCast(ref x: ?t) + +.. function:: proc byte_isAscii( c: byteType) : bool + +.. function:: proc byte_isWhitespace( c: byteType) : bool + +.. function:: proc byte_isPrintable( c: byteType) : bool + +.. function:: proc byte_isAlpha( c: byteType) : bool + +.. function:: proc byte_isUpper( c: byteType) : bool + +.. function:: proc byte_isLower( c: byteType) : bool + +.. function:: proc byte_isDigit( c: byteType) : bool + +.. function:: proc byte_isAlnum( c: byteType) : bool + +.. function:: proc byte_toUpper( c: byteType) : byteType + +.. function:: proc byte_toLower( c: byteType) : byteType + diff --git a/docs/internal/_sources/modules/internal/CString.rst.txt b/docs/internal/_sources/modules/internal/CString.rst.txt new file mode 100644 index 000000000..d56539312 --- /dev/null +++ b/docs/internal/_sources/modules/internal/CString.rst.txt @@ -0,0 +1,90 @@ +.. default-domain:: chpl + +.. module:: CString + :noindex: + +CString +======= +**Usage** + +.. code-block:: chapel + + use CString; + + +or + +.. code-block:: chapel + + import CString; + +.. function:: proc chpl__initCopy( x: chpl_c_string, definedConst: bool) : chpl_c_string + +.. function:: proc chpl__autoCopy( x: chpl_c_string, definedConst: bool) : chpl_c_string + +.. method:: operator chpl_c_string.==( s0: chpl_c_string, s1: chpl_c_string) + +.. method:: operator chpl_c_string.!=( s0: chpl_c_string, s1: chpl_c_string) + +.. method:: operator chpl_c_string.<=( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.>=( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.<( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.>( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: _nilType) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: string) + +.. function:: operator :( x: _nilType, type t: chpl_c_string) + +.. function:: operator :( x: chpl_c_string, type t: c_ptr(void)) + +.. function:: operator :( x: c_ptr(void), type t: chpl_c_string) + +.. function:: operator :( x: chpl_c_string, type t: c_ptr(?eltType)) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: chpl_c_string, type t: c_ptrConst(?eltType)) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: c_ptr(?eltType), type t: chpl_c_string) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: c_ptrConst(?eltType), type t: chpl_c_string) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: chpl_c_string, type t: bool) throws + +.. function:: operator :( x: chpl_c_string, type t: integral) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anyreal) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anycomplex) throws + +.. method:: proc chpl_c_string.size + +.. method:: proc chpl_c_string.substring( i: int) + +.. method:: proc chpl_c_string.substring( r: range(?)) + +.. method:: proc param chpl_c_string.size param + +.. function:: proc _string_contains(param a: chpl_c_string, param b: chpl_c_string) param + +.. method:: proc chpl_c_string.indexOf( substring: chpl_c_string) : int + + Returns the index of the first occurrence of a substring within a string, + or 0 if the substring is not in the string. + + +.. function:: proc string_index_of( haystack: chpl_c_string, needle: chpl_c_string) : int + +.. function:: proc chpl_free_c_string(ref cs: chpl_c_string) + +.. method:: proc chpl_c_string.serialize( writer, ref serializer) throws + +.. method:: proc chpl_c_string.deserialize( reader, ref deserializer) throws + diff --git a/docs/internal/_sources/modules/internal/ChapelArray.rst.txt b/docs/internal/_sources/modules/internal/ChapelArray.rst.txt new file mode 100644 index 000000000..7a92ed845 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelArray.rst.txt @@ -0,0 +1,900 @@ +.. default-domain:: chpl + +.. module:: ChapelArray + :noindex: + +ChapelArray +=========== +**Usage** + +.. code-block:: chapel + + use ChapelArray; + + +or + +.. code-block:: chapel + + import ChapelArray; + +.. data:: var numPrivateObjects: chpl__processorAtomicType(int) + +.. data:: param nullPid = -1 + +.. data:: config param debugBulkTransfer = false + +.. data:: config param useBulkTransfer = true + +.. data:: config param useBulkTransferStride = true + +.. data:: config param useBulkPtrTransfer = useBulkTransfer + +.. data:: config param disableConstDomainOpt = false + +.. data:: config param debugOptimizedSwap = false + +.. data:: config param PODValAccess = true + +.. data:: config param useBulkTransferDist = false + +.. data:: config param arrayAsVecGrowthFactor = 1.5 + +.. data:: config param debugArrayAsVec = false + +.. data:: config param logDistArrEltAccess = false + +.. data:: config param logAllArrEltAccess = false + +.. function:: proc _isPrivatized( value) param + +.. function:: proc _newPrivatizedClass( value) : int + +.. function:: proc _freePrivatizedClass( pid: int, original: RootClass) : void + +.. function:: proc _reprivatize( value) : void + +.. function:: proc _makeIndexTuple(param rank, t: _tuple, param concept: string, param expand: bool = false) + +.. function:: proc _makeIndexTuple(param rank, val: integral, param concept: string, param expand: bool = false) + +.. function:: proc _makeIndexTuple(param rank, val, param concept: string, param expand: bool = false) + +.. function:: proc _newArray( value) + +.. function:: proc _getDistribution( value) + +.. function:: proc chpl__buildArrayRuntimeType( dom: domain, type eltType) type + +.. function:: proc chpl__convertRuntimeTypeToValue( dom: domain, type eltType, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertValueToRuntimeType( arr: []) type + +.. data:: config param CHPL_WARN_DOMAIN_LITERAL = "unset" + + + * Support for array literal expressions. + * + * Array literals are detected during parsing and converted + * to a call expr. Array values pass through the various + * compilation phases as regular parameters. + * + * NOTE: It would be nice to define a second, less specific, function + * to handle the case of multiple types, however this is not + * possible atm due to using var args with a query type. + +.. data:: config param arrayLiteralLowBound = defaultLowBound + +.. data:: config param capturedIteratorLowBound = defaultLowBound + +.. function:: proc chpl__buildArrayExpr(in elems ...?k) + +.. function:: proc chpl_computeUnifiedType( x: _tuple) type + +.. function:: proc chpl_computeUnifiedTypeHelp( x: _tuple, j: int = 0) + +.. function:: proc chpl__buildAssociativeArrayExpr(const elems ...?k) + +.. function:: proc chpl_incRefCountsForDomainsInArrayEltTypes( arr: unmanaged(BaseArr), type eltType) + +.. function:: proc chpl_decRefCountsForDomainsInArrayEltTypes( arr: unmanaged(BaseArr), type eltType) + +.. function:: proc chpl__distributed( d, dom: domain, definedConst: bool) + +.. function:: proc chpl__distributed( d, expr, definedConst: bool) + +.. function:: proc chpl__isArrayView( arr) param + +.. function:: proc chpl__getActualArray( arr) + +.. function:: proc chpl__isDROrDRView( arg) param + +.. function:: proc chpl__isDomainView( dom) param + +.. function:: proc chpl__getActualDomain( dom) + +.. function:: proc chpl__distributed( d, type domainType, definedConst: bool) type + +.. function:: proc chpl__distributionFromDomainRuntimeType(type rtt) + +.. function:: proc chpl__eltTypeFromArrayRuntimeType(type rtt) type + +.. function:: proc chpl__instanceTypeFromArrayRuntimeType(type rtt) type + +.. function:: proc chpl__instanceTypeFromDomainRuntimeType(type rtt) type + +.. function:: proc chpl__buildIndexType(param rank: int, type idxType) type where rank == 1 + +.. function:: proc chpl__buildIndexType(param rank: int, type idxType) type where rank > 1 + +.. function:: proc chpl__buildIndexType(param rank: int) type + +.. function:: proc chpl__buildIndexType( d: domain) type + +.. function:: proc chpl__checkRetEltTypeMatch( a: [], type b) + +.. function:: proc chpl__checkRetEltTypeMatch( a: _iteratorRecord, type b) + +.. function:: proc chpl__checkOutEltTypeMatch( a: [], type b) + +.. function:: proc chpl__checkOutEltTypeMatch( a: _iteratorRecord, type b) + +.. record:: dmap + + .. warning:: + + the type 'dmap' is unstable, instead please use distribution factory functions when available + +.. function:: proc chpl__buildDistType(type t) type where isSubtype(_to_borrowed(t), BaseDist) + +.. function:: proc chpl__buildDistType(type t: record) type + +.. function:: proc chpl__buildDistType(type t) + +.. function:: proc chpl__buildDistValue( x: unmanaged) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistValue(in x: owned) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistValue(const ref x: record) const ref + +.. function:: proc chpl__buildDistValue( x) + +.. function:: proc chpl__buildDistDMapValue(const ref x: record) const ref + +.. function:: proc chpl__buildDistDMapValue( x: unmanaged) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistDMapValue(in x: owned) where isSubtype(x.borrow().type, BaseDist) + +.. function:: operator ==( d1: _distribution(?), d2: _distribution(?)) + +.. function:: operator ==( d1: _distribution(?), d2: record) param + +.. function:: operator ==( d1: record, d2: _distribution(?)) param + +.. function:: operator !=( d1: _distribution(?), d2: _distribution(?)) + +.. function:: operator !=( d1: _distribution(?), d2: record) param + +.. function:: operator !=( d1: record, d2: _distribution(?)) param + +.. function:: proc chpl_defaultComparator() + +.. function:: proc shouldReturnRvalueByValue(type t) param + +.. record:: _array : writeSerializable, readDeserializable + + The array type + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc chpl__serialize() where _instance.chpl__rvfMe() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc chpl__promotionType() type + + .. method:: proc _value + + .. method:: proc deinit() + + .. method:: proc eltType type + + The type of elements contained in the array + + .. method:: proc idxType type + + The type used to represent the array's indices. For a + multidimensional array, this is the per-dimension type used. + + .. method:: proc fullIdxType type + + The type used to represent the array's indices. For a + 1-dimensional or associative array, this will be the same as + :proc:`idxType` above. For a multidimensional array, it will be + :proc:`rank` * :proc:`idxType`. + + .. method:: proc _dom + + .. method:: proc rank param + + The number of dimensions in the array + + .. method:: proc strides param + + The strides value of the underlying domain + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc indices where !this.isSparse() && !this.isAssociative() + + + Return a dense rectangular array's indices as a default domain. + + + .. itermethod:: iter indices where this.isSparse() || this.isAssociative() + + + Yield an irregular array's indices. + + + .. method:: proc checkAccess( indices, value) + + .. method:: proc checkSlice( d: domain, value) + + .. method:: proc checkSlice(ranges ...rank, value) where chpl__isTupleOfRanges(ranges) + + .. method:: proc ref this(const i: rank*_value.dom.idxType) ref + + .. method:: proc const this(const i: rank*_value.dom.idxType) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const this(const i: rank*_value.dom.idxType) const ref + + .. method:: proc ref this(const i: _value.dom.idxType ...rank) ref + + .. method:: proc const this(const i: _value.dom.idxType ...rank) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const this(const i: _value.dom.idxType ...rank) const ref + + .. method:: proc ref localAccess( i: rank*_value.dom.idxType) ref + + .. method:: proc const localAccess( i: rank*_value.dom.idxType) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const localAccess( i: rank*_value.dom.idxType) const ref + + .. method:: proc ref localAccess(i: _value.dom.idxType ...rank) ref + + .. method:: proc const localAccess(i: _value.dom.idxType ...rank) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const localAccess(i: _value.dom.idxType ...rank) const ref + + .. method:: proc this( d: domain) + + .. method:: proc this(ranges ...rank) where chpl__isTupleOfRanges(ranges) + + .. method:: proc this(args ...rank) where _validRankChangeArgs(args, _value.dom.idxType) + + .. method:: proc dims() + + + Return a tuple of ranges describing the bounds of a rectangular domain. + For a sparse domain, return the bounds of the parent domain. + + + .. method:: proc dim( d: int) + + + Return a range representing the boundary of this + domain in a particular dimension. + + + .. method:: proc dim(param d: int) + + .. method:: proc checkRankChange( args) + + .. method:: proc localSlice(r ...rank) where chpl__isDROrDRView(this) && chpl__isTupleOfRanges(r) + + .. method:: proc localSlice( d: domain) where chpl__isDROrDRView(this) + + .. method:: proc tryCopy() throws + + .. warning:: + + tryCopy() is subject to change in the future. + + .. method:: proc chpl__localSliceDefaultArithArrHelp( d: domain) + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && !chpl__isDROrDRView(this) + + .. method:: proc localSlice( d: domain) + + .. itermethod:: iter these() ref + + Yield the array elements + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, param fast: bool = false) ref where tag == iterKind.follower + + .. method:: proc size : int + + Return the number of elements in the array + + .. method:: proc sizeAs(type t: integral) : t + + Return the number of elements in the array as the specified type. + + .. method:: proc chpl_checkArrArgDoms( formalDom: domain, param runtimeChecks: bool) + + .. method:: proc reindex( newDomain: domain) where this.domain.isRectangular() && newDomain.isRectangular() + + + Return an array view over a new domain. The new domain must be + of the same rank and size as the original array's domain. + + For example: + + .. code-block:: chapel + + var A: [1..10] int; + const D = {6..15}; + ref reA = A.reindex(D); + reA[6] = 1; // updates A[1] + + + .. method:: proc reindex(newDims ...) where this.domain.isRectangular() + + + Return an array view over a new domain defined implicitly + by one or more `newDims`, which must be ranges. The new domain must be + of the same rank and size as the original array's domain. + + For example: + + .. code-block:: chapel + + var A: [3..4, 5..6] int; + ref reA = A.reindex(13..14, 15..16); + reA[13,15] = 1; // updates A[3,5] + + + .. method:: proc reindex( d: domain) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc IRV where !this.isSparse() + + Return the Implicitly Represented Value for sparse arrays + + .. method:: proc IRV ref where this.isSparse() + + .. method:: proc displayRepresentation() + + .. method:: proc targetLocales() const ref + + + Return an array of locales over which this array has been distributed. + + + .. method:: proc hasSingleLocalSubdomain() param + + .. warning:: + + 'hasSingleLocalSubdomain' on arrays is unstable and may change in the future + + Return true if the local subdomain can be represented as a single + domain. Otherwise return false. + + .. method:: proc localSubdomain( loc: locale = here) + + + Return the subdomain that is local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. itermethod:: iter localSubdomains( loc: locale = here) + + .. warning:: + + 'localSubdomains' on arrays is unstable and may change in the future + + + Yield the subdomains that are local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. method:: proc chpl__isDense1DArray() param + + .. method:: proc isEmpty() : bool + + Return true if the array has no elements + + .. method:: proc last + + Return the last element in the array. The array must be a + rectangular 1-D array. + + + .. method:: proc first + + Return the first element in the array. The array must be a + rectangular 1-D array. + + + .. method:: proc find( val: eltType, ref idx: fullIdxType) : bool + + + + Search an array for ``val``, returning whether or not it is + found. If the value is found, the index storing it is returned + in ``idx``. If multiple copies of it are found, the + lexicographically earliest index will be returned. If it is not + found, the resulting value of ``idx`` is unspecified. + + + + .. method:: proc find( val: eltType) : fullIdxType + + + + Search a rectangular array with integral indices for ``val``, + returning the index where it is found. If the array contains + multiple copies of ``val``, the lexicographically earliest index + will be returned. If ``val`` is not found, + ``domain.lowBound-1`` will be returned instead. + + Note that for arrays with ``idxType=int(?w)`` (signed ``int`` + indices), if the low bound in a dimension is ``min(int(w))``, + the result will not be well-defined. + + + + .. method:: proc count( val: this.eltType) : int + + Return the number of times ``val`` occurs in the array. + + .. method:: proc shape : rank*int where this.isRectangular() || this.isSparse() + + Return a tuple of integers describing the size of each dimension. + For a sparse array, returns the shape of the parent domain. + + .. method:: proc shape where this.isAssociative() + + Associative domains assumed to be 1-D. + + .. method:: proc shape + + Unsupported case + + .. method:: proc _scan( op) where Reflection.canResolveMethod(_value, "doiScan", op, this.domain) + + .. method:: proc iteratorYieldsLocalElements() param + + .. method:: proc chpl_isNonDistributedArray() param + + .. method:: proc isRectangular() param + + Return true if the argument ``a`` is an array with a rectangular + domain. Otherwise return false. + + .. method:: proc isIrregular() param + + Return true if ``a`` is an array with an irregular domain; e.g. not + rectangular. Otherwise return false. + + .. method:: proc isAssociative() param + + Return true if ``a`` is an array with an associative domain. Otherwise + return false. + + .. method:: proc isSparse() param + + Return true if ``a`` is an array with a sparse domain. Otherwise + return false. + +.. function:: proc _do_destroy_arr( _unowned: bool, _instance, deinitElts = true) + +.. function:: proc _do_destroy_array( array: _array, deinitElts = true) + +.. function:: proc _deinitElementsIsParallel(type eltType, size: integral) + +.. function:: proc _deinitElements(ref array: _array) + +.. method:: proc _array.equals( that: _array) : bool + + .. warning:: + + the 'Array.equals()' method is unstable + + Return true if all this array is the same size and shape + as argument ``that`` and all elements of this array are + equal to the corresponding element in ``that``. Otherwise + return false. + +.. function:: operator :(param arg, type t: _array) + +.. function:: operator :( x: [], type t: string) + + .. warning:: + + casting arrays to string is deprecated; please use 'try! "%?".format()' from IO.FormattedIO instead + +.. function:: operator :(in x: [] ?et, type t: et) where t == et + +.. function:: operator #( arr: [], counts: integral) + +.. function:: operator #( arr: [], counts: _tuple) + +.. function:: operator #( arr: [], counts) + +.. function:: proc isCollapsedDimension( r: range(?e, ?b, ?s, ?a)) param + +.. function:: proc isCollapsedDimension( r) param + +.. function:: proc chpl__countRanges( arg) param + +.. function:: proc chpl__countRanges( arg, args ...) param + +.. function:: proc _validRankChangeArgs( args, type idxType) param + +.. function:: operator = (ref a: _distribution, b: _distribution) + + .. warning:: + + assignment between distributions is currently unstable due to lack of testing + +.. function:: proc chpl__serializeAssignment( a, b) param + +.. function:: proc chpl__compatibleForBulkTransfer( a, b, param kind: _tElt) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer(type t) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: string) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: bytes) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: sync) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: single) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: domain) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: []) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: _distribution) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: locale) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: chpl_anycomplex) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: borrowed(RootClass)) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x) param + +.. function:: proc checkArrayShapesUponAssignment( a, b, forSwap = false) + +.. function:: operator = (ref a: [], b: []) + +.. function:: operator = (ref a: chpl__protoSlice, b: chpl__protoSlice) + +.. enum:: enum _tElt { move, initCopy, assign } + + .. enumconstant:: enum constant move + + .. enumconstant:: enum constant initCopy + + .. enumconstant:: enum constant assign + +.. function:: proc chpl__uncheckedArrayTransfer(ref a, b, param kind) + +.. function:: proc chpl__initAfterBulkTransfer(ref a, param kind) + +.. function:: proc chpl__compatibleForWidePtrBulkTransfer( a, b, param kind = _tElt.assign) param + +.. function:: proc chpl__bulkTransferPtrArray(ref a: [], b: []) + +.. function:: proc chpl__bulkTransferArray(ref a: [?AD], b: [?BD]) + +.. function:: proc chpl__bulkTransferArray(ref a: chpl__protoSlice, b: chpl__protoSlice) + +.. function:: proc chpl__bulkTransferArray(ref a: [], AD, const ref b: [], BD) + +.. function:: proc chpl__bulkTransferArray( destClass, destView, srcClass, srcView) + +.. function:: proc chpl__transferArray(ref a, const ref b, param kind = _tElt.assign, param alwaysSerialize = false) + +.. function:: proc chpl__transferArray(ref a: [], param b, param kind = _tElt.assign) + +.. function:: operator = (ref a: [], b: domain) + +.. function:: operator = (ref a: [], b: range(?)) + +.. function:: operator = (ref a: [], b: _iteratorRecord) + +.. function:: operator = (ref a: [], b: ?t) where !(isTupleType(t) || isCoercible(t, _desync(a.eltType))) + +.. function:: operator = (ref a: [], b: _tuple) where a.isRectangular() + +.. function:: proc _desync(type t: _syncvar) type + +.. function:: proc _desync(type t: _singlevar) type + +.. function:: proc _desync(type t) type where isAtomicType(t) + +.. function:: proc _desync(type t: _array) type + + Or, we could explicitly overload for each atomic type since there + are a fixed number + proc _desync(type t: atomic int) type { + return int; + } + +.. function:: proc _desync(type t) type + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + Direct assignment to 'sync' variables is deprecated; apply a 'write??()' method to modify one + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + Direct assignment to 'single' variables is deprecated; apply '.writeEF()' to modify one + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator <=>(ref x: [?xD], ref y: [?yD]) + +.. function:: proc reshape( A: [], D: domain) + + Return a copy of the array ``A`` containing the same values but + in the shape of the domain ``D``. The number of indices in the + domain must equal the number of elements in the array. The + elements of ``A`` are copied into the new array using the + default iteration orders over ``D`` and ``A``. + +.. function:: proc reshape( A: _iteratorRecord, D: domain) + +.. iterfunction:: iter linearize( Xs) + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isRectangular() + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isAssociative() + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isSparse() + +.. function:: proc chpl__autoCopy(const ref x: domain, definedConst: bool) + +.. data:: param localizeConstDomains = false + +.. data:: param debugLocalizedConstDomains = false + +.. function:: proc chpl__initCopy(const ref rhs: [], definedConst: bool) + +.. function:: proc chpl__autoCopy( x: [], definedConst: bool) + +.. function:: proc chpl__coerceHelp(type dstType: domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _array, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _array, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: desyncEltType(dstType), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: desyncEltType(dstType), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs, definedConst: bool) + +.. function:: proc chpl__unref( x: []) where chpl__isArrayView(x._value) + +.. function:: proc chpl__unref( ir: _iteratorRecord) + +.. function:: proc chpl__unref( x: []) + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) where chpl_iteratorHasDomainShape(ir) + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) where chpl_iteratorHasRangeShape(ir) && !chpl_iteratorFromForExpr(ir) + +.. function:: proc chpl__initCopy_shapeHelp( shape: domain, ir: _iteratorRecord) + +.. function:: proc chpl__throwErrorUnchecked(in e: owned(Error)) throws + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl_arrayToPtrErrorHelper(const ref arr: []) + +.. function:: proc chpl_arrayToPtr(ref arr: [], param castToVoidStar: bool = false) + +.. function:: proc chpl_arrayToPtrConst(const ref arr: [], param castToVoidStar: bool = false) + diff --git a/docs/internal/_sources/modules/internal/ChapelArrayViewElision.rst.txt b/docs/internal/_sources/modules/internal/ChapelArrayViewElision.rst.txt new file mode 100644 index 000000000..5d528960c --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelArrayViewElision.rst.txt @@ -0,0 +1,106 @@ +.. default-domain:: chpl + +.. module:: ChapelArrayViewElision + :noindex: + +ChapelArrayViewElision +====================== +**Usage** + +.. code-block:: chapel + + use ChapelArrayViewElision; + + +or + +.. code-block:: chapel + + import ChapelArrayViewElision; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl__createProtoSlice(ref Arr, slicingExprs ...) where chpl__createProtoSliceArgCheck(Arr, slicingExprs) + +.. function:: proc chpl__createConstProtoSlice(const ref Arr, slicingExprs ...) where chpl__createProtoSliceArgCheck(Arr, slicingExprs) + +.. function:: proc chpl__createProtoSlice( x, slicingExprs ...) + +.. function:: proc chpl__createConstProtoSlice( x, slicingExprs ...) + +.. function:: proc chpl__ave_exprCanBeProtoSlice( base, idxExprs ...) param: bool + +.. function:: proc chpl__ave_protoSlicesSupportAssignment( a: chpl__protoSlice, b: chpl__protoSlice) param: bool + +.. record:: chpl__protoSlice + + .. attribute:: param rank + + .. attribute:: param isConst + + .. attribute:: var ptrToArr + + .. attribute:: type slicingExprType + + .. attribute:: var ranges + + .. attribute:: param isRankChange = false + + .. method:: proc init() + + .. method:: proc init(param isConst, ptrToArr, slicingExprs) + + .. method:: proc init=( other: chpl__protoSlice) + + .. method:: proc domOrRange where rank == 1 + + .. method:: proc domOrRange where rank > 1 + + .. method:: proc dims() + + .. method:: proc rank param + + .. method:: proc eltType type + + .. method:: proc _value + + .. method:: proc sizeAs(type t) where rank == 1 + + .. method:: proc sizeAs(type t) + + .. method:: proc isRectangular() param + + .. itermethod:: iter these() ref where !isConst + + .. itermethod:: iter these() const ref where isConst + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower && !isConst + + .. itermethod:: iter these(param tag: iterKind, followThis) const ref where tag == iterKind.follower && isConst + +.. function:: operator ==(const ref lhs: chpl__protoSlice(?), const ref rhs: chpl__protoSlice(?)) + +.. function:: operator :(ref a: chpl__protoSlice, type b: chpl__protoSlice) + +.. function:: proc isProtoSlice( a) param + diff --git a/docs/internal/_sources/modules/internal/ChapelAutoAggregation.rst.txt b/docs/internal/_sources/modules/internal/ChapelAutoAggregation.rst.txt new file mode 100644 index 000000000..efec4e227 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelAutoAggregation.rst.txt @@ -0,0 +1,56 @@ +.. default-domain:: chpl + +.. module:: ChapelAutoAggregation + :noindex: + +ChapelAutoAggregation +===================== +**Usage** + +.. code-block:: chapel + + use ChapelAutoAggregation; + + +or + +.. code-block:: chapel + + import ChapelAutoAggregation; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl_srcAggregatorFor( arr: []) + +.. function:: proc chpl_srcAggregatorFor( dom) where isDomain(dom) + +.. function:: proc chpl_srcAggregatorFor( arr) + +.. function:: proc chpl_dstAggregatorFor( arr: []) + +.. function:: proc chpl_dstAggregatorFor( dom) where isDomain(dom) + +.. function:: proc chpl_dstAggregatorFor( arr) + +.. function:: proc chpl__arrayIteratorYieldsLocalElements( x) param + +.. function:: proc chpl__arrayIteratorYieldsLocalElements(type a) param + diff --git a/docs/internal/_sources/modules/internal/ChapelAutoLocalAccess.rst.txt b/docs/internal/_sources/modules/internal/ChapelAutoLocalAccess.rst.txt new file mode 100644 index 000000000..4eb835a41 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelAutoLocalAccess.rst.txt @@ -0,0 +1,64 @@ +.. default-domain:: chpl + +.. module:: ChapelAutoLocalAccess + :noindex: + +ChapelAutoLocalAccess +===================== +**Usage** + +.. code-block:: chapel + + use ChapelAutoLocalAccess; + + +or + +.. code-block:: chapel + + import ChapelAutoLocalAccess; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl__staticAutoLocalCheck( accessBase: [], loopDomain: domain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck( accessBase, loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck( accessBase, type loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__dynamicAutoLocalCheck( accessBase, loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck( accessBase, type loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false) + +.. function:: proc chpl__ala_offsetCheck( accessBase: [], offsets: integral ...) + +.. function:: proc chpl__ala_offsetCheck( accessBase, offsets ...) + +.. function:: proc chpl__isArrayViewWithDifferentDist( arr: []) param + diff --git a/docs/internal/_sources/modules/internal/ChapelBase.rst.txt b/docs/internal/_sources/modules/internal/ChapelBase.rst.txt new file mode 100644 index 000000000..ab8053363 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelBase.rst.txt @@ -0,0 +1,2119 @@ +.. default-domain:: chpl + +.. module:: ChapelBase + :noindex: + +ChapelBase +========== +**Usage** + +.. code-block:: chapel + + use ChapelBase; + + +or + +.. code-block:: chapel + + import ChapelBase; + +**Submodules** + +.. toctree:: + :maxdepth: 1 + :glob: + + ChapelBase/* + +.. type:: type c_string = chpl_c_string + + .. warning:: + + the type 'c_string' is deprecated; please 'use CTypes' and replace 'c_string' with 'c_ptrConst(c_char)' + +.. type:: type c_fn_ptr = chpl_c_fn_ptr + + .. warning:: + + 'c_fn_ptr' is unstable, and may be replaced by first-class procedure functionality + +.. method:: operator c_fn_ptr. = (ref a: c_fn_ptr, b: c_fn_ptr) + + .. warning:: + + = is unstable + +.. method:: proc c_fn_ptr.this() + + .. warning:: + + this is unstable + +.. method:: proc c_fn_ptr.this(args ...) + + .. warning:: + + this is unstable + +.. data:: var rootLocaleInitialized: bool = false + +.. data:: config param enablePostfixBangChecks = false + +.. function:: proc chpl_config_has_value( name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : bool + +.. function:: proc chpl_config_get_value( name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : c_ptrConst(c_char) + +.. data:: config param defaultLowBound = 0 + +.. data:: config param chpl_stringMinAllocSize = 0 + +.. data:: config param warnMaximalRange = false + +.. data:: var chpl_unstableInternalSymbolForTesting: int + + .. warning:: + + chpl_unstableInternalSymbolForTesting is unstable + +.. data:: config param assocParSafeDefault = false + + Compile with ``-sassocParSafeDefault=true`` to use ``parSafe=true`` + by default for associative domains and arrays. + Compiling with an explicit ``-sassocParSafeDefault[=false]`` will + turn off the par safe warning, just like ``-snoParSafeWarning`` + +.. data:: config param noParSafeWarning = false + + Compile with ``-snoParSafeWarning`` to suppress the warning + about a missing explicit ``parSafe`` parameter and + about the default parSafe mode for associative domains + and arrays changing from ``true`` to ``false``. + +.. class:: _object + +.. class:: object + + .. warning:: + + the 'object' abstract root class has been deprecated; please use 'RootClass' instead + +.. enum:: enum iterKind { leader, follower, standalone } + + .. enumconstant:: enum constant leader + + .. enumconstant:: enum constant follower + + .. enumconstant:: enum constant standalone + +.. data:: config param fcfsUsePointerImplementation = false + +.. function:: operator = (ref a: bool, b: bool) + +.. function:: operator = (ref a: int(8), b: int(8)) + +.. function:: operator = (ref a: int(16), b: int(16)) + +.. function:: operator = (ref a: int(32), b: int(32)) + +.. function:: operator = (ref a: int(64), b: int(64)) + +.. function:: operator = (ref a: uint(8), b: uint(8)) + +.. function:: operator = (ref a: uint(16), b: uint(16)) + +.. function:: operator = (ref a: uint(32), b: uint(32)) + +.. function:: operator = (ref a: uint(64), b: uint(64)) + +.. function:: operator = (ref a: real(32), b: real(32)) + +.. function:: operator = (ref a: real(64), b: real(64)) + +.. function:: operator = (ref a: imag(32), b: imag(32)) + +.. function:: operator = (ref a: imag(64), b: imag(64)) + +.. function:: operator = (ref a: complex(64), b: complex(64)) + +.. function:: operator = (ref a: complex(128), b: complex(128)) + +.. function:: operator = (ref a: opaque, b: opaque) + +.. function:: operator = (ref a: enum, b: enum) where a.type == b.type + +.. function:: operator = (ref a: borrowed(class), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: borrowed(class?), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: unmanaged(class), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: unmanaged(class?), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: nothing, b: ?t) where t != nothing + +.. function:: operator = (ref a: ?t, b: nothing) where t != nothing + +.. function:: operator = (ref a: nothing, b: nothing) param + +.. function:: operator ==( a: _nilType, b: _nilType) param + +.. function:: operator ==( a: bool, b: bool) + +.. function:: operator ==( a: int(8), b: int(8)) + +.. function:: operator ==( a: int(16), b: int(16)) + +.. function:: operator ==( a: int(32), b: int(32)) + +.. function:: operator ==( a: int(64), b: int(64)) + +.. function:: operator ==( a: uint(8), b: uint(8)) + +.. function:: operator ==( a: uint(16), b: uint(16)) + +.. function:: operator ==( a: uint(32), b: uint(32)) + +.. function:: operator ==( a: uint(64), b: uint(64)) + +.. function:: operator ==( a: real(32), b: real(32)) + +.. function:: operator ==( a: real(64), b: real(64)) + +.. function:: operator ==( a: imag(32), b: imag(32)) + +.. function:: operator ==( a: imag(64), b: imag(64)) + +.. function:: operator ==( a: complex(64), b: complex(64)) + +.. function:: operator ==( a: complex(128), b: complex(128)) + +.. function:: operator ==( a: borrowed(RootClass?), b: borrowed(RootClass?)) + +.. function:: operator ==( a: borrowed(RootClass?), b: _nilType) + +.. function:: operator ==( a: _nilType, b: borrowed(RootClass?)) + +.. function:: operator ==( a: enum, b: enum) where a.type == b.type + +.. function:: operator ==( a: enum, b: enum) where a.type != b.type + +.. function:: operator !=( a: _nilType, b: _nilType) param + +.. function:: operator !=( a: bool, b: bool) + +.. function:: operator !=( a: int(8), b: int(8)) + +.. function:: operator !=( a: int(16), b: int(16)) + +.. function:: operator !=( a: int(32), b: int(32)) + +.. function:: operator !=( a: int(64), b: int(64)) + +.. function:: operator !=( a: uint(8), b: uint(8)) + +.. function:: operator !=( a: uint(16), b: uint(16)) + +.. function:: operator !=( a: uint(32), b: uint(32)) + +.. function:: operator !=( a: uint(64), b: uint(64)) + +.. function:: operator !=( a: real(32), b: real(32)) + +.. function:: operator !=( a: real(64), b: real(64)) + +.. function:: operator !=( a: imag(32), b: imag(32)) + +.. function:: operator !=( a: imag(64), b: imag(64)) + +.. function:: operator !=( a: complex(64), b: complex(64)) + +.. function:: operator !=( a: complex(128), b: complex(128)) + +.. function:: operator !=( a: borrowed(RootClass?), b: borrowed(RootClass?)) + +.. function:: operator !=( a: borrowed(RootClass?), b: _nilType) + +.. function:: operator !=( a: _nilType, b: borrowed(RootClass?)) + +.. function:: operator !=( a: enum, b: enum) where a.type == b.type + +.. function:: operator !=( a: enum, b: enum) where a.type != b.type + +.. function:: operator ==(param a: bool, param b: bool) param + +.. function:: operator ==(param a: int(8), param b: int(8)) param + +.. function:: operator ==(param a: int(16), param b: int(16)) param + +.. function:: operator ==(param a: int(32), param b: int(32)) param + +.. function:: operator ==(param a: int(64), param b: int(64)) param + +.. function:: operator ==(param a: uint(8), param b: uint(8)) param + +.. function:: operator ==(param a: uint(16), param b: uint(16)) param + +.. function:: operator ==(param a: uint(32), param b: uint(32)) param + +.. function:: operator ==(param a: uint(64), param b: uint(64)) param + +.. function:: operator ==(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator ==(param a: real(32), param b: real(32)) param + +.. function:: operator ==(param a: real(64), param b: real(64)) param + +.. function:: operator ==(param a: imag(32), param b: imag(32)) param + +.. function:: operator ==(param a: imag(64), param b: imag(64)) param + +.. function:: operator ==(param a: complex(64), param b: complex(64)) param + +.. function:: operator ==(param a: complex(128), param b: complex(128)) param + +.. function:: operator ==( a: nothing, b: nothing) param + +.. function:: operator !=(param a: bool, param b: bool) param + +.. function:: operator !=(param a: int(8), param b: int(8)) param + +.. function:: operator !=(param a: int(16), param b: int(16)) param + +.. function:: operator !=(param a: int(32), param b: int(32)) param + +.. function:: operator !=(param a: int(64), param b: int(64)) param + +.. function:: operator !=(param a: uint(8), param b: uint(8)) param + +.. function:: operator !=(param a: uint(16), param b: uint(16)) param + +.. function:: operator !=(param a: uint(32), param b: uint(32)) param + +.. function:: operator !=(param a: uint(64), param b: uint(64)) param + +.. function:: operator !=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator !=(param a: real(32), param b: real(32)) param + +.. function:: operator !=(param a: real(64), param b: real(64)) param + +.. function:: operator !=(param a: imag(32), param b: imag(32)) param + +.. function:: operator !=(param a: imag(64), param b: imag(64)) param + +.. function:: operator !=(param a: complex(64), param b: complex(64)) param + +.. function:: operator !=(param a: complex(128), param b: complex(128)) param + +.. function:: operator !=( a: nothing, b: nothing) param + +.. function:: operator <=( a: int(8), b: int(8)) + +.. function:: operator <=( a: int(16), b: int(16)) + +.. function:: operator <=( a: int(32), b: int(32)) + +.. function:: operator <=( a: int(64), b: int(64)) + +.. function:: operator <=( a: uint(8), b: uint(8)) + +.. function:: operator <=( a: uint(16), b: uint(16)) + +.. function:: operator <=( a: uint(32), b: uint(32)) + +.. function:: operator <=( a: uint(64), b: uint(64)) + +.. function:: operator <=( a: real(32), b: real(32)) + +.. function:: operator <=( a: real(64), b: real(64)) + +.. function:: operator <=( a: enum, b: enum) where a.type == b.type + +.. function:: operator <=( a: enum, b: enum) where a.type != b.type + +.. function:: operator >=( a: int(8), b: int(8)) + +.. function:: operator >=( a: int(16), b: int(16)) + +.. function:: operator >=( a: int(32), b: int(32)) + +.. function:: operator >=( a: int(64), b: int(64)) + +.. function:: operator >=( a: uint(8), b: uint(8)) + +.. function:: operator >=( a: uint(16), b: uint(16)) + +.. function:: operator >=( a: uint(32), b: uint(32)) + +.. function:: operator >=( a: uint(64), b: uint(64)) + +.. function:: operator >=( a: real(32), b: real(32)) + +.. function:: operator >=( a: real(64), b: real(64)) + +.. function:: operator >=( a: enum, b: enum) where a.type == b.type + +.. function:: operator >=( a: enum, b: enum) where a.type != b.type + +.. function:: operator <( a: integral, b: integral) + +.. function:: operator <( a: integral, param b: integral) param where isUint(a) && __primitive("<=", b, 0) + +.. function:: operator <(param a: integral, b: integral) param where isUint(b) && __primitive("<", a, 0) + +.. function:: operator <(param a: integral, param b: integral) param + +.. function:: operator <( a: bool, b: bool) + +.. function:: operator <( a: bool, b: integral) + +.. function:: operator <( a: integral, b: bool) + +.. function:: operator <(param a: bool, param b: bool) param + +.. function:: operator <( a: real(32), b: real(32)) + +.. function:: operator <( a: real(64), b: real(64)) + +.. function:: operator <( a: enum, b: enum) where a.type == b.type + +.. function:: operator <( a: enum, b: enum) where a.type != b.type + +.. function:: operator >( a: int(8), b: int(8)) + +.. function:: operator >( a: int(16), b: int(16)) + +.. function:: operator >( a: int(32), b: int(32)) + +.. function:: operator >( a: int(64), b: int(64)) + +.. function:: operator >( a: uint(8), b: uint(8)) + +.. function:: operator >( a: uint(16), b: uint(16)) + +.. function:: operator >( a: uint(32), b: uint(32)) + +.. function:: operator >( a: uint(64), b: uint(64)) + +.. function:: operator >( a: real(32), b: real(32)) + +.. function:: operator >( a: real(64), b: real(64)) + +.. function:: operator >( a: enum, b: enum) where a.type == b.type + +.. function:: operator >( a: enum, b: enum) where a.type != b.type + +.. function:: operator <=(param a: int(8), param b: int(8)) param + +.. function:: operator <=(param a: int(16), param b: int(16)) param + +.. function:: operator <=(param a: int(32), param b: int(32)) param + +.. function:: operator <=(param a: int(64), param b: int(64)) param + +.. function:: operator <=(param a: uint(8), param b: uint(8)) param + +.. function:: operator <=(param a: uint(16), param b: uint(16)) param + +.. function:: operator <=(param a: uint(32), param b: uint(32)) param + +.. function:: operator <=(param a: uint(64), param b: uint(64)) param + +.. function:: operator <=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator <=(param a: real(32), param b: real(32)) param + +.. function:: operator <=(param a: real(64), param b: real(64)) param + +.. function:: operator >=(param a: int(8), param b: int(8)) param + +.. function:: operator >=(param a: int(16), param b: int(16)) param + +.. function:: operator >=(param a: int(32), param b: int(32)) param + +.. function:: operator >=(param a: int(64), param b: int(64)) param + +.. function:: operator >=(param a: uint(8), param b: uint(8)) param + +.. function:: operator >=(param a: uint(16), param b: uint(16)) param + +.. function:: operator >=(param a: uint(32), param b: uint(32)) param + +.. function:: operator >=(param a: uint(64), param b: uint(64)) param + +.. function:: operator >=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator >=(param a: real(32), param b: real(32)) param + +.. function:: operator >=(param a: real(64), param b: real(64)) param + +.. function:: operator <(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator <(param a: real(32), param b: real(32)) param + +.. function:: operator <(param a: real(64), param b: real(64)) param + +.. function:: operator >(param a: int(8), param b: int(8)) param + +.. function:: operator >(param a: int(16), param b: int(16)) param + +.. function:: operator >(param a: int(32), param b: int(32)) param + +.. function:: operator >(param a: int(64), param b: int(64)) param + +.. function:: operator >(param a: uint(8), param b: uint(8)) param + +.. function:: operator >(param a: uint(16), param b: uint(16)) param + +.. function:: operator >(param a: uint(32), param b: uint(32)) param + +.. function:: operator >(param a: uint(64), param b: uint(64)) param + +.. function:: operator >(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator >(param a: real(32), param b: real(32)) param + +.. function:: operator >(param a: real(64), param b: real(64)) param + +.. function:: operator +( a: int(?w)) + +.. function:: operator +( a: uint(?w)) + +.. function:: operator +( a: real(?w)) + +.. function:: operator +( a: imag(?w)) + +.. function:: operator +( a: complex(?w)) + +.. function:: operator -( a: int(?w)) + +.. function:: operator -( a: uint(?w)) + +.. function:: operator -( a: real(?w)) + +.. function:: operator -( a: imag(?w)) + +.. function:: operator -( a: complex(?w)) + +.. function:: operator +(param a: int(?w)) param + +.. function:: operator +(param a: uint(?w)) param + +.. function:: operator +(param a: real(?w)) param + +.. function:: operator +(param a: imag(?w)) param + +.. function:: operator +(param a: complex(?w)) param + +.. function:: operator -(param a: int(?w)) param + +.. function:: operator -(param a: uint(?w)) param + +.. function:: operator -(param a: real(?w)) param + +.. function:: operator -(param a: imag(?w)) param + +.. function:: operator -(param a: complex(?w)) param + +.. function:: operator +( a: int(8), b: int(8)) + +.. function:: operator +( a: int(16), b: int(16)) + +.. function:: operator +( a: int(32), b: int(32)) + +.. function:: operator +( a: int(64), b: int(64)) + +.. function:: operator +( a: uint(8), b: uint(8)) + +.. function:: operator +( a: uint(16), b: uint(16)) + +.. function:: operator +( a: uint(32), b: uint(32)) + +.. function:: operator +( a: uint(64), b: uint(64)) + +.. function:: operator +( a: real(32), b: real(32)) + +.. function:: operator +( a: real(64), b: real(64)) + +.. function:: operator +( a: imag(32), b: imag(32)) + +.. function:: operator +( a: imag(64), b: imag(64)) + +.. function:: operator +( a: complex(64), b: complex(64)) + +.. function:: operator +( a: complex(128), b: complex(128)) + +.. function:: operator +( a: real(32), b: imag(32)) + +.. function:: operator +( a: real(64), b: imag(64)) + +.. function:: operator +( a: imag(32), b: real(32)) + +.. function:: operator +( a: imag(64), b: real(64)) + +.. function:: operator +( a: real(32), b: complex(64)) + +.. function:: operator +( a: real(64), b: complex(128)) + +.. function:: operator +( a: complex(64), b: real(32)) + +.. function:: operator +( a: complex(128), b: real(64)) + +.. function:: operator +( a: imag(32), b: complex(64)) + +.. function:: operator +( a: imag(64), b: complex(128)) + +.. function:: operator +( a: complex(64), b: imag(32)) + +.. function:: operator +( a: complex(128), b: imag(64)) + +.. function:: operator -( a: int(8), b: int(8)) + +.. function:: operator -( a: int(16), b: int(16)) + +.. function:: operator -( a: int(32), b: int(32)) + +.. function:: operator -( a: int(64), b: int(64)) + +.. function:: operator -( a: uint(8), b: uint(8)) + +.. function:: operator -( a: uint(16), b: uint(16)) + +.. function:: operator -( a: uint(32), b: uint(32)) + +.. function:: operator -( a: uint(64), b: uint(64)) + +.. function:: operator -( a: real(32), b: real(32)) + +.. function:: operator -( a: real(64), b: real(64)) + +.. function:: operator -( a: imag(32), b: imag(32)) + +.. function:: operator -( a: imag(64), b: imag(64)) + +.. function:: operator -( a: complex(64), b: complex(64)) + +.. function:: operator -( a: complex(128), b: complex(128)) + +.. function:: operator -( a: real(32), b: imag(32)) + +.. function:: operator -( a: real(64), b: imag(64)) + +.. function:: operator -( a: imag(32), b: real(32)) + +.. function:: operator -( a: imag(64), b: real(64)) + +.. function:: operator -( a: real(32), b: complex(64)) + +.. function:: operator -( a: real(64), b: complex(128)) + +.. function:: operator -( a: complex(64), b: real(32)) + +.. function:: operator -( a: complex(128), b: real(64)) + +.. function:: operator -( a: imag(32), b: complex(64)) + +.. function:: operator -( a: imag(64), b: complex(128)) + +.. function:: operator -( a: complex(64), b: imag(32)) + +.. function:: operator -( a: complex(128), b: imag(64)) + +.. function:: operator +(param a: int(8), param b: int(8)) param + +.. function:: operator +(param a: int(16), param b: int(16)) param + +.. function:: operator +(param a: int(32), param b: int(32)) param + +.. function:: operator +(param a: int(64), param b: int(64)) param + +.. function:: operator +(param a: uint(8), param b: uint(8)) param + +.. function:: operator +(param a: uint(16), param b: uint(16)) param + +.. function:: operator +(param a: uint(32), param b: uint(32)) param + +.. function:: operator +(param a: uint(64), param b: uint(64)) param + +.. function:: operator +(param a: real(32), param b: real(32)) param + +.. function:: operator +(param a: real(64), param b: real(64)) param + +.. function:: operator +(param a: imag(32), param b: imag(32)) param + +.. function:: operator +(param a: imag(64), param b: imag(64)) param + +.. function:: operator +(param a: complex(64), param b: complex(64)) param + +.. function:: operator +(param a: complex(128), param b: complex(128)) param + +.. function:: operator +(param a: real(32), param b: imag(32)) param + +.. function:: operator +(param a: real(64), param b: imag(64)) param + +.. function:: operator +(param a: imag(32), param b: real(32)) param + +.. function:: operator +(param a: imag(64), param b: real(64)) param + +.. function:: operator -(param a: int(8), param b: int(8)) param + + inline operator +(param a: real(?w), param b: complex(w*2)) param do return + __primitive("+", a, b); + +.. function:: operator -(param a: int(16), param b: int(16)) param + +.. function:: operator -(param a: int(32), param b: int(32)) param + +.. function:: operator -(param a: int(64), param b: int(64)) param + +.. function:: operator -(param a: uint(8), param b: uint(8)) param + +.. function:: operator -(param a: uint(16), param b: uint(16)) param + +.. function:: operator -(param a: uint(32), param b: uint(32)) param + +.. function:: operator -(param a: uint(64), param b: uint(64)) param + +.. function:: operator -(param a: real(32), param b: real(32)) param + +.. function:: operator -(param a: real(64), param b: real(64)) param + +.. function:: operator -(param a: imag(32), param b: imag(32)) param + +.. function:: operator -(param a: imag(64), param b: imag(64)) param + +.. function:: operator -(param a: complex(64), param b: complex(64)) param + +.. function:: operator -(param a: complex(128), param b: complex(128)) param + +.. function:: operator -(param a: real(32), param b: imag(32)) param + +.. function:: operator -(param a: real(64), param b: imag(64)) param + +.. function:: operator -(param a: imag(32), param b: real(32)) param + +.. function:: operator -(param a: imag(64), param b: real(64)) param + +.. function:: operator *( a: int(8), b: int(8)) + +.. function:: operator *( a: int(16), b: int(16)) + +.. function:: operator *( a: int(32), b: int(32)) + +.. function:: operator *( a: int(64), b: int(64)) + +.. function:: operator *( a: uint(8), b: uint(8)) + +.. function:: operator *( a: uint(16), b: uint(16)) + +.. function:: operator *( a: uint(32), b: uint(32)) + +.. function:: operator *( a: uint(64), b: uint(64)) + +.. function:: operator *( a: real(32), b: real(32)) + +.. function:: operator *( a: real(64), b: real(64)) + +.. function:: operator *( a: imag(32), b: imag(32)) + +.. function:: operator *( a: imag(64), b: imag(64)) + +.. function:: operator *( a: complex(64), b: complex(64)) + +.. function:: operator *( a: complex(128), b: complex(128)) + +.. function:: operator *( a: real(32), b: imag(32)) + +.. function:: operator *( a: real(64), b: imag(64)) + +.. function:: operator *( a: imag(32), b: real(32)) + +.. function:: operator *( a: imag(64), b: real(64)) + +.. function:: operator *( a: real(32), b: complex(64)) + +.. function:: operator *( a: real(64), b: complex(128)) + +.. function:: operator *( a: complex(64), b: real(32)) + +.. function:: operator *( a: complex(128), b: real(64)) + +.. function:: operator *( a: imag(32), b: complex(64)) + +.. function:: operator *( a: imag(64), b: complex(128)) + +.. function:: operator *( a: complex(64), b: imag(32)) + +.. function:: operator *( a: complex(128), b: imag(64)) + +.. function:: operator /( a: int(8), b: int(8)) + +.. function:: operator /( a: int(16), b: int(16)) + +.. function:: operator /( a: int(32), b: int(32)) + +.. function:: operator /( a: int(64), b: int(64)) + +.. function:: operator /( a: uint(8), b: uint(8)) + +.. function:: operator /( a: uint(16), b: uint(16)) + +.. function:: operator /( a: uint(32), b: uint(32)) + +.. function:: operator /( a: uint(64), b: uint(64)) + +.. function:: operator /( a: real(32), b: real(32)) + +.. function:: operator /( a: real(64), b: real(64)) + +.. function:: operator /( a: imag(32), b: imag(32)) + +.. function:: operator /( a: imag(64), b: imag(64)) + +.. function:: operator /( a: complex(64), b: complex(64)) + +.. function:: operator /( a: complex(128), b: complex(128)) + +.. function:: operator /( a: real(32), b: imag(32)) + +.. function:: operator /( a: real(64), b: imag(64)) + +.. function:: operator /( a: imag(32), b: real(32)) + +.. function:: operator /( a: imag(64), b: real(64)) + +.. function:: operator /( a: real(32), b: complex(64)) + +.. function:: operator /( a: real(64), b: complex(128)) + +.. function:: operator /( a: complex(64), b: real(32)) + +.. function:: operator /( a: complex(128), b: real(64)) + +.. function:: operator /( a: imag(32), b: complex(64)) + +.. function:: operator /( a: imag(64), b: complex(128)) + +.. function:: operator /( a: complex(64), b: imag(32)) + +.. function:: operator /( a: complex(128), b: imag(64)) + +.. function:: operator *(param a: int(8), param b: int(8)) param + +.. function:: operator *(param a: int(16), param b: int(16)) param + +.. function:: operator *(param a: int(32), param b: int(32)) param + +.. function:: operator *(param a: int(64), param b: int(64)) param + +.. function:: operator *(param a: uint(8), param b: uint(8)) param + +.. function:: operator *(param a: uint(16), param b: uint(16)) param + +.. function:: operator *(param a: uint(32), param b: uint(32)) param + +.. function:: operator *(param a: uint(64), param b: uint(64)) param + +.. function:: operator *(param a: real(32), param b: real(32)) param + +.. function:: operator *(param a: real(64), param b: real(64)) param + +.. function:: operator *(param a: imag(32), param b: imag(32)) param + +.. function:: operator *(param a: imag(64), param b: imag(64)) param + +.. function:: operator *(param a: real(32), param b: imag(32)) param + +.. function:: operator *(param a: real(64), param b: imag(64)) param + +.. function:: operator *(param a: imag(32), param b: real(32)) param + +.. function:: operator *(param a: imag(64), param b: real(64)) param + +.. function:: operator /(param a: int(8), param b: int(8)) param + +.. function:: operator /(param a: int(16), param b: int(16)) param + +.. function:: operator /(param a: int(32), param b: int(32)) param + +.. function:: operator /(param a: int(64), param b: int(64)) param + +.. function:: operator /(param a: uint(8), param b: uint(8)) param + +.. function:: operator /(param a: uint(16), param b: uint(16)) param + +.. function:: operator /(param a: uint(32), param b: uint(32)) param + +.. function:: operator /(param a: uint(64), param b: uint(64)) param + +.. function:: operator /(param a: real(32), param b: real(32)) param + +.. function:: operator /(param a: real(64), param b: real(64)) param + +.. function:: operator /(param a: imag(32), param b: imag(32)) param + +.. function:: operator /(param a: imag(64), param b: imag(64)) param + +.. function:: operator /(param a: real(32), param b: imag(32)) param + +.. function:: operator /(param a: real(64), param b: imag(64)) param + +.. function:: operator /(param a: imag(32), param b: real(32)) param + +.. function:: operator /(param a: imag(64), param b: real(64)) param + +.. function:: operator %( a: int(8), b: int(8)) + +.. function:: operator %( a: int(16), b: int(16)) + +.. function:: operator %( a: int(32), b: int(32)) + +.. function:: operator %( a: int(64), b: int(64)) + +.. function:: operator %( a: uint(8), b: uint(8)) + +.. function:: operator %( a: uint(16), b: uint(16)) + +.. function:: operator %( a: uint(32), b: uint(32)) + +.. function:: operator %( a: uint(64), b: uint(64)) + +.. function:: operator %(param a: int(8), param b: int(8)) param + +.. function:: operator %(param a: int(16), param b: int(16)) param + +.. function:: operator %(param a: int(32), param b: int(32)) param + +.. function:: operator %(param a: int(64), param b: int(64)) param + +.. function:: operator %(param a: uint(8), param b: uint(8)) param + +.. function:: operator %(param a: uint(16), param b: uint(16)) param + +.. function:: operator %(param a: uint(32), param b: uint(32)) param + +.. function:: operator %(param a: uint(64), param b: uint(64)) param + +.. function:: proc _intExpHelp( a: integral, b) where a.type == b.type + +.. function:: operator **( a: int(8), b: int(8)) + +.. function:: operator **( a: int(16), b: int(16)) + +.. function:: operator **( a: int(32), b: int(32)) + +.. function:: operator **( a: int(64), b: int(64)) + +.. function:: operator **( a: uint(8), b: uint(8)) + +.. function:: operator **( a: uint(16), b: uint(16)) + +.. function:: operator **( a: uint(32), b: uint(32)) + +.. function:: operator **( a: uint(64), b: uint(64)) + +.. function:: operator **( a: real(32), b: real(32)) + +.. function:: operator **( a: real(64), b: real(64)) + +.. function:: operator **( a: complex(64), b: complex(64)) + +.. function:: operator **( a: complex(128), b: complex(128)) + +.. function:: operator **(param a: int(8), param b: int(8)) param + +.. function:: operator **(param a: int(16), param b: int(16)) param + +.. function:: operator **(param a: int(32), param b: int(32)) param + +.. function:: operator **(param a: int(64), param b: int(64)) param + +.. function:: operator **(param a: uint(8), param b: uint(8)) param + +.. function:: operator **(param a: uint(16), param b: uint(16)) param + +.. function:: operator **(param a: uint(32), param b: uint(32)) param + +.. function:: operator **(param a: uint(64), param b: uint(64)) param + +.. function:: proc _expHelp( a, param b: integral) + +.. function:: proc _expBaseHelp(param a: int, b) where _basePowerTwo(a) + +.. function:: proc _canOptimizeExp(param b: integral) param + +.. function:: proc _basePowerTwo(param a: integral) param + +.. function:: operator **( a: int(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **( a: uint(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **( a: real(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **(param a: integral, b: int) where _basePowerTwo(a) + +.. function:: operator !( a: bool) + +.. function:: operator !( a: int(?w)) + +.. function:: operator !( a: uint(?w)) + +.. function:: proc isTrue( a: bool) + +.. function:: proc isTrue(param a: bool) param + +.. function:: proc isTrue( a: integral) + +.. function:: operator !(param a: bool) param + +.. function:: operator !(param a: int(?w)) param + +.. function:: operator !(param a: uint(?w)) param + +.. function:: operator ~( a: int(?w)) + +.. function:: operator ~( a: uint(?w)) + +.. function:: operator ~( a: bool) + +.. function:: operator &( a: bool, b: bool) + +.. function:: operator &( a: int(8), b: int(8)) + +.. function:: operator &( a: int(16), b: int(16)) + +.. function:: operator &( a: int(32), b: int(32)) + +.. function:: operator &( a: int(64), b: int(64)) + +.. function:: operator &( a: uint(8), b: uint(8)) + +.. function:: operator &( a: uint(16), b: uint(16)) + +.. function:: operator &( a: uint(32), b: uint(32)) + +.. function:: operator &( a: uint(64), b: uint(64)) + +.. function:: operator &( a: uint(8), b: int(8)) + +.. function:: operator &( a: uint(16), b: int(16)) + +.. function:: operator &( a: uint(32), b: int(32)) + +.. function:: operator &( a: uint(64), b: int(64)) + +.. function:: operator &( a: int(8), b: uint(8)) + +.. function:: operator &( a: int(16), b: uint(16)) + +.. function:: operator &( a: int(32), b: uint(32)) + +.. function:: operator &( a: int(64), b: uint(64)) + +.. function:: operator |( a: bool, b: bool) + +.. function:: operator |( a: int(8), b: int(8)) + +.. function:: operator |( a: int(16), b: int(16)) + +.. function:: operator |( a: int(32), b: int(32)) + +.. function:: operator |( a: int(64), b: int(64)) + +.. function:: operator |( a: uint(8), b: uint(8)) + +.. function:: operator |( a: uint(16), b: uint(16)) + +.. function:: operator |( a: uint(32), b: uint(32)) + +.. function:: operator |( a: uint(64), b: uint(64)) + +.. function:: operator |( a: uint(8), b: int(8)) + +.. function:: operator |( a: uint(16), b: int(16)) + +.. function:: operator |( a: uint(32), b: int(32)) + +.. function:: operator |( a: uint(64), b: int(64)) + +.. function:: operator |( a: int(8), b: uint(8)) + +.. function:: operator |( a: int(16), b: uint(16)) + +.. function:: operator |( a: int(32), b: uint(32)) + +.. function:: operator |( a: int(64), b: uint(64)) + +.. function:: operator ^( a: bool, b: bool) + +.. function:: operator ^( a: int(8), b: int(8)) + +.. function:: operator ^( a: int(16), b: int(16)) + +.. function:: operator ^( a: int(32), b: int(32)) + +.. function:: operator ^( a: int(64), b: int(64)) + +.. function:: operator ^( a: uint(8), b: uint(8)) + +.. function:: operator ^( a: uint(16), b: uint(16)) + +.. function:: operator ^( a: uint(32), b: uint(32)) + +.. function:: operator ^( a: uint(64), b: uint(64)) + +.. function:: operator ^( a: uint(8), b: int(8)) + +.. function:: operator ^( a: uint(16), b: int(16)) + +.. function:: operator ^( a: uint(32), b: int(32)) + +.. function:: operator ^( a: uint(64), b: int(64)) + +.. function:: operator ^( a: int(8), b: uint(8)) + +.. function:: operator ^( a: int(16), b: uint(16)) + +.. function:: operator ^( a: int(32), b: uint(32)) + +.. function:: operator ^( a: int(64), b: uint(64)) + +.. function:: operator ~(param a: bool) + +.. function:: operator ~(param a: int(?w)) param + +.. function:: operator ~(param a: uint(?w)) param + +.. function:: operator &(param a: bool, param b: bool) param + +.. function:: operator &(param a: int(8), param b: int(8)) param + +.. function:: operator &(param a: int(16), param b: int(16)) param + +.. function:: operator &(param a: int(32), param b: int(32)) param + +.. function:: operator &(param a: int(64), param b: int(64)) param + +.. function:: operator &(param a: uint(8), param b: uint(8)) param + +.. function:: operator &(param a: uint(16), param b: uint(16)) param + +.. function:: operator &(param a: uint(32), param b: uint(32)) param + +.. function:: operator &(param a: uint(64), param b: uint(64)) param + +.. function:: operator &(param a: uint(8), param b: int(8)) param + +.. function:: operator &(param a: uint(16), param b: int(16)) param + +.. function:: operator &(param a: uint(32), param b: int(32)) param + +.. function:: operator &(param a: uint(64), param b: int(64)) param + +.. function:: operator &(param a: int(8), param b: uint(8)) param + +.. function:: operator &(param a: int(16), param b: uint(16)) param + +.. function:: operator &(param a: int(32), param b: uint(32)) param + +.. function:: operator &(param a: int(64), param b: uint(64)) param + +.. function:: operator |(param a: bool, param b: bool) param + +.. function:: operator |(param a: int(8), param b: int(8)) param + +.. function:: operator |(param a: int(16), param b: int(16)) param + +.. function:: operator |(param a: int(32), param b: int(32)) param + +.. function:: operator |(param a: int(64), param b: int(64)) param + +.. function:: operator |(param a: uint(8), param b: uint(8)) param + +.. function:: operator |(param a: uint(16), param b: uint(16)) param + +.. function:: operator |(param a: uint(32), param b: uint(32)) param + +.. function:: operator |(param a: uint(64), param b: uint(64)) param + +.. function:: operator |(param a: uint(8), param b: int(8)) param + +.. function:: operator |(param a: uint(16), param b: int(16)) param + +.. function:: operator |(param a: uint(32), param b: int(32)) param + +.. function:: operator |(param a: uint(64), param b: int(64)) param + +.. function:: operator |(param a: int(8), param b: uint(8)) param + +.. function:: operator |(param a: int(16), param b: uint(16)) param + +.. function:: operator |(param a: int(32), param b: uint(32)) param + +.. function:: operator |(param a: int(64), param b: uint(64)) param + +.. function:: operator ^(param a: bool, param b: bool) param + +.. function:: operator ^(param a: int(8), param b: int(8)) param + +.. function:: operator ^(param a: int(16), param b: int(16)) param + +.. function:: operator ^(param a: int(32), param b: int(32)) param + +.. function:: operator ^(param a: int(64), param b: int(64)) param + +.. function:: operator ^(param a: uint(8), param b: uint(8)) param + +.. function:: operator ^(param a: uint(16), param b: uint(16)) param + +.. function:: operator ^(param a: uint(32), param b: uint(32)) param + +.. function:: operator ^(param a: uint(64), param b: uint(64)) param + +.. function:: operator ^(param a: uint(8), param b: int(8)) param + +.. function:: operator ^(param a: uint(16), param b: int(16)) param + +.. function:: operator ^(param a: uint(32), param b: int(32)) param + +.. function:: operator ^(param a: uint(64), param b: int(64)) param + +.. function:: operator ^(param a: int(8), param b: uint(8)) param + +.. function:: operator ^(param a: int(16), param b: uint(16)) param + +.. function:: operator ^(param a: int(32), param b: uint(32)) param + +.. function:: operator ^(param a: int(64), param b: uint(64)) param + +.. function:: proc bitshiftChecks( a, b: integral) + +.. function:: proc bitshiftChecks(param a, param b: integral) + +.. function:: operator <<( a: int(?w), b: integral) + +.. function:: operator <<( a: uint(?w), b: integral) + +.. function:: operator >>( a: int(?w), b: integral) + +.. function:: operator >>( a: uint(?w), b: integral) + +.. function:: operator <<(param a: int(?w), param b: integral) param + +.. function:: operator <<(param a: uint(?w), param b: integral) param + +.. function:: operator >>(param a: int(?w), param b: integral) param + +.. function:: operator >>(param a: uint(?w), param b: integral) param + +.. function:: proc postfix!( x: unmanaged(class)) + +.. function:: proc postfix!( x: borrowed(class)) + +.. function:: proc postfix!( x: unmanaged(class?)) + +.. function:: proc postfix!( x: borrowed(class?)) + +.. function:: proc postfix!( x) + +.. function:: proc chpl_statementLevelSymbol( a) + +.. function:: proc chpl_statementLevelSymbol( a: sync) + +.. function:: proc chpl_statementLevelSymbol( a: single) + +.. function:: proc chpl_statementLevelSymbol( ir: _iteratorRecord) + +.. function:: proc _cond_test(param x: ?t) param: bool + +.. function:: proc _cond_test( x: ?t) : bool + +.. function:: proc _cond_invalid( x: borrowed(RootClass?)) param + +.. function:: proc _cond_invalid( x: bool) param + +.. function:: proc _cond_invalid( x: int) param + +.. function:: proc _cond_invalid( x: uint) param + +.. function:: proc _cond_invalid( x) param + +.. function:: proc isNonnegative( i: int(?)) + +.. function:: proc isNonnegative( i: uint(?)) param + +.. function:: proc isNonnegative(param i) param + +.. method:: proc ref chpl_anycomplex.re ref + +.. method:: proc param chpl_anycomplex.re param + +.. method:: proc chpl_anycomplex.re + +.. method:: proc ref chpl_anycomplex.im ref + +.. method:: proc param chpl_anycomplex.im param + +.. method:: proc chpl_anycomplex.im + +.. function:: proc _i2r( a: imag(?w)) + +.. function:: proc _r2i( a: real(?w)) + +.. enum:: enum ArrayInit { heuristicInit, noInit, serialInit, parallelInit, gpuInit } + + .. enumconstant:: enum constant heuristicInit + + .. enumconstant:: enum constant noInit + + .. enumconstant:: enum constant serialInit + + .. enumconstant:: enum constant parallelInit + + .. enumconstant:: enum constant gpuInit + +.. data:: config param chpl_defaultArrayInitMethod = ArrayInit.heuristicInit + +.. data:: config param chpl_defaultGpuArrayInitMethod = if CHPL_GPU_MEM_STRATEGY == "array_on_device" then ArrayInit.gpuInit else chpl_defaultArrayInitMethod + +.. data:: config param chpl_arrayInitMethodRuntimeSelectable = false + +.. function:: proc chpl_setArrayInitMethod( initMethod: ArrayInit) + +.. function:: proc chpl_getArrayInitMethod() + +.. function:: proc chpl_shouldDoGpuInit() : bool + +.. function:: proc init_elts_method( s, type t) + +.. function:: proc init_elts( x, s, type t, lo = 0: s.type) : void + +.. type:: type chpl_mem_descInt_t = int(16) + +.. enum:: enum chpl_ddataResizePolicy { normalInit, skipInit, skipInitButClearMem } + + .. enumconstant:: enum constant normalInit + + .. enumconstant:: enum constant skipInit + + .. enumconstant:: enum constant skipInitButClearMem + +.. class:: _ddata + + .. attribute:: type eltType + + .. method:: proc this( i: integral) ref + +.. function:: proc chpl_isDdata(type t: _ddata) param + +.. function:: proc chpl_isDdata(type t) param + +.. function:: operator = (ref a: _ddata(?t), b: _ddata(t)) + +.. function:: proc _ddata_shift(type eltType, data: _ddata(eltType), shift: integral) + +.. function:: proc _ddata_sizeof_element(type t: _ddata) : c_size_t + +.. function:: proc _ddata_sizeof_element( x: _ddata) : c_size_t + +.. function:: proc _ddata_allocate_noinit(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none, haltOnOom: bool = true) + +.. function:: proc _try_ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none) throws + +.. function:: proc _ddata_allocate_noinit_gpu_shared(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none) + +.. function:: proc _ddata_allocate_postalloc( data: _ddata, size: integral) + +.. function:: proc _ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none) + +.. function:: proc _ddata_supports_reallocate( oldDdata, type eltType, oldSize: integral, newSize: integral) + +.. function:: proc _ddata_fill( ddata, type eltType, lo: integral, hi: integral, fill: int(8) = 0) + +.. function:: proc _ddata_reallocate( oldDdata, type eltType, oldSize: integral, newSize: integral, subloc = c_sublocid_none, policy = chpl_ddataResizePolicy.normalInit) + +.. function:: proc _ddata_free( data: _ddata, size: integral) + +.. function:: operator ==( a: _ddata, b: _ddata) where _to_borrowed(a.eltType) == _to_borrowed(b.eltType) + +.. function:: operator ==( a: _ddata, b: _nilType) + +.. function:: operator ==( a: _nilType, b: _ddata) + +.. function:: operator !=( a: _ddata, b: _ddata) where a.eltType == b.eltType + +.. function:: operator !=( a: _ddata, b: _nilType) + +.. function:: operator !=( a: _nilType, b: _ddata) + +.. function:: proc _cond_test( x: _ddata) + +.. class:: _ref + + .. attribute:: var _val + +.. function:: proc chpl_rt_reset_task_spawn() + +.. function:: proc chpl_resetTaskSpawn( numTasks) + +.. data:: config param useAtomicTaskCnt = defaultAtomicTaskCount() + +.. function:: proc defaultAtomicTaskCount() param + +.. data:: config param commDiagsTrackEndCounts = false + +.. record:: endCountDiagsManager : contextManager + + .. attribute:: var taskInfo: c_ptr(chpl_task_infoChapel_t) + + .. attribute:: var prevDiagsDisabledVal: bool + + .. method:: proc ref enterContext() + + .. method:: proc exitContext(in unused: owned(Error?)) + +.. class:: _EndCountBase + + .. attribute:: var errors: chpl_TaskErrors + +.. class:: _EndCount : _EndCountBase + + .. attribute:: type iType + + .. attribute:: type taskType + + .. attribute:: var i: iType + + .. attribute:: var taskCnt: taskType + + .. method:: proc init(type iType, type taskType) + + .. method:: proc add( value: int, param order: memoryOrder) + + .. method:: proc sub( value: int, param order: memoryOrder) + + .. method:: proc waitFor( value: int, param order: memoryOrder) + +.. function:: proc _endCountAlloc(param forceLocalTypes: bool) + +.. type:: type _remoteEndCountType = _endCountAlloc(false).type + +.. function:: proc _endCountFree( e: _EndCount) + +.. function:: proc _upEndCount( e: _EndCount, param countRunningTasks = true) + +.. function:: proc _upEndCount( e: _EndCount, param countRunningTasks = true, numTasks) + +.. function:: proc chpl_comm_unordered_task_fence() : void + +.. function:: proc chpl_comm_task_create() + +.. function:: proc chpl_comm_task_end() : void + +.. function:: proc chpl_after_forall_fence() + +.. function:: proc _downEndCount( e: _EndCount, err: unmanaged(Error?)) + +.. function:: proc _waitEndCount( e: _EndCount, param countRunningTasks = true) throws + +.. function:: proc _waitEndCount( e: _EndCount, param countRunningTasks = true, numTasks) throws + +.. function:: proc _upDynamicEndCount(param countRunningTasks = true) + +.. function:: proc _downDynamicEndCount( err: unmanaged(Error?)) + +.. function:: proc chpl_waitDynamicEndCount(param countRunningTasks = true) throws + +.. method:: proc param (real(64)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (real(32)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc (real(?w)).transmute(type t) : t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (uint(64)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (uint(32)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc (uint(?w)).transmute(type t) : t + + .. warning:: + + This routine may change names / signatures + +.. function:: proc chpl_typeSupportsPrimitiveCast(type t) param + +.. function:: operator :( x: bool, type t: integral) + +.. function:: operator :( x: bool, type t: chpl_anyreal) + +.. function:: operator :( x: integral, type t: bool) + +.. function:: operator :( x: integral, type t: integral) + +.. function:: operator :( x: integral, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anyreal, type t: bool) + +.. function:: operator :( x: chpl_anyreal, type t: integral) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anyreal) + +.. function:: proc chpl_checkCastAbstractEnumError(type enumType, type dstType) param + +.. function:: operator :( x: enum, type t: bool) throws + + .. warning:: + + enum-to-bool casts are likely to be deprecated in the future + +.. function:: operator :( x: enum, type t: enum) where x.type == t + +.. function:: operator :( x: enum, type t: chpl_anyreal) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: _nilType, type t: unmanaged(class)) + +.. function:: operator :( x: _nilType, type t: borrowed(class)) + +.. function:: proc chpl_castUnmanagedError(param typeStr: string) param + +.. function:: operator :( x: owned(class), type t: unmanaged(class)) + +.. function:: operator :( x: owned(class?), type t: unmanaged(class)) + +.. function:: operator :( x: owned(class), type t: unmanaged(class?)) + +.. function:: operator :( x: owned(class?), type t: unmanaged(class?)) + +.. function:: operator :( x: shared(class), type t: unmanaged(class)) + +.. function:: operator :( x: shared(class?), type t: unmanaged(class)) + +.. function:: operator :( x: shared(class), type t: unmanaged(class?)) + +.. function:: operator :( x: shared(class?), type t: unmanaged(class?)) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class?)) where isSubtype(_to_unmanaged(x.type), t) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class?)) where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class)) where isSubtype(_to_unmanaged(x.type), t) + +.. function:: operator :( x: unmanaged(class?), type t: borrowed(class)) throws where isSubtype(_to_nonnil(x.type), t) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class)) throws where isSubtype(_to_nonnil(x.type), t) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class)) throws where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class)) throws where isProperSubtype(t, _to_nonnil(x.type)) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class?)) where isProperSubtype(t, x.type) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class)) throws where isProperSubtype(t, _to_nonnil(_to_unmanaged(x.type))) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class?)) where isProperSubtype(t, _to_unmanaged(x.type)) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class?)) where isProperSubtype(_to_nonnil(_to_borrowed(t)), x.type) + +.. function:: operator :( x: bool, type t: chpl_anycomplex) + +.. function:: operator :( x: integral, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anycomplex) + +.. function:: operator :( x: enum, type t: chpl_anycomplex) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: bool, type t: chpl_anyimag) + +.. function:: operator :( x: integral, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anyimag) + +.. function:: operator :( x: enum, type t: chpl_anyimag) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anycomplex, type t: integral) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anyimag, type t: integral) + +.. function:: operator :( x: chpl_anyimag, type t: bool) + +.. function:: proc chpl__initCopy(type t, definedConst: bool) type + +.. function:: proc chpl__initCopy( x: _tuple, definedConst: bool) + +.. function:: proc chpl__initCopy(const x, definedConst: bool) + +.. function:: proc chpl__autoCopy( x: _tuple, definedConst: bool) + +.. function:: proc chpl__unref( x: _tuple) + +.. function:: proc chpl__autoCopy( ir: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__autoCopy(const x, definedConst: bool) + +.. function:: proc chpl__autoDestroy( x: borrowed(RootClass)) + +.. function:: proc chpl__autoDestroy(type t) + +.. function:: proc chpl__autoDestroy( x) + +.. function:: proc chpl__autoDestroy( ir: _iteratorRecord) + +.. function:: proc chpl__autoDestroy( x: _distribution) + +.. function:: proc chpl__autoDestroy( x: domain) + +.. function:: proc chpl__autoDestroy( x: []) + +.. function:: proc chpl__delete(const arg) + +.. function:: proc chpl__delete(const arr: []) + +.. function:: proc chpl__delete( arg, const args ...) + +.. function:: proc func() type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc func(type rettype) type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc func(type t ...?n, type rettype) type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc isIterator( ic: _iteratorClass) param + +.. function:: proc isIterator( ir: _iteratorRecord) param + +.. function:: proc isIterator( not_an_iterator) param + +.. function:: operator +=(ref lhs: int(8), rhs: int(8)) + + op= operators + + +.. function:: operator +=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator +=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator +=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator +=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator +=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator +=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator +=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator +=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator +=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator +=(ref lhs: imag(32), rhs: imag(32)) + +.. function:: operator +=(ref lhs: imag(64), rhs: imag(64)) + +.. function:: operator +=(ref lhs: complex(64), rhs: complex(64)) + +.. function:: operator +=(ref lhs: complex(128), rhs: complex(128)) + +.. function:: operator +=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator -=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator -=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator -=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator -=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator -=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator -=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator -=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator -=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator -=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator -=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator -=(ref lhs: imag(32), rhs: imag(32)) + +.. function:: operator -=(ref lhs: imag(64), rhs: imag(64)) + +.. function:: operator -=(ref lhs: complex(64), rhs: complex(64)) + +.. function:: operator -=(ref lhs: complex(128), rhs: complex(128)) + +.. function:: operator -=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator *=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator *=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator *=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator *=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator *=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator *=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator *=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator *=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator *=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator *=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator *=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator /=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator /=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator /=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator /=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator /=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator /=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator /=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator /=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator /=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator /=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator /=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator %=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator %=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator %=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator %=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator %=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator %=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator %=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator %=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator %=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator **=(ref lhs, rhs) + +.. function:: operator &=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator &=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator &=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator &=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator &=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator &=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator &=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator &=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator &=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator |=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator |=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator |=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator |=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator |=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator |=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator |=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator |=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator |=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator ^=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator ^=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator ^=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator ^=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator ^=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator ^=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator ^=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator ^=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator ^=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator >>=(ref lhs: int(?w), rhs: integral) + +.. function:: operator >>=(ref lhs: uint(?w), rhs: integral) + +.. function:: operator >>=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator <<=(ref lhs: int(?w), rhs: integral) + +.. function:: operator <<=(ref lhs: uint(?w), rhs: integral) + +.. function:: operator <<=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator <=>(ref lhs, ref rhs) + + swap operator + +.. function:: operator +( a: uint(64), param b: uint(64)) + +.. function:: operator +(param a: uint(64), b: uint(64)) + +.. function:: operator +( a: int(64), param b: int(64)) + +.. function:: operator +(param a: int(64), b: int(64)) + +.. function:: operator -( a: uint(64), param b: uint(64)) + +.. function:: operator -(param a: uint(64), b: uint(64)) + +.. function:: operator -( a: int(64), param b: int(64)) + +.. function:: operator -(param a: int(64), b: int(64)) + +.. function:: operator *( a: uint(64), param b: uint(64)) + +.. function:: operator *(param a: uint(64), b: uint(64)) + +.. function:: operator *( a: int(64), param b: int(64)) + +.. function:: operator *(param a: int(64), b: int(64)) + +.. function:: operator /( a: int(64), param b: int(64)) + +.. function:: operator /( a: uint(64), param b: uint(64)) + +.. function:: operator /(param a: uint(64), b: uint(64)) + +.. function:: operator /(param a: int(64), b: int(64)) + +.. function:: operator **( a: uint(64), param b: uint(64)) + +.. function:: operator **(param a: uint(64), b: uint(64)) + +.. function:: operator **( a: int(64), param b: int(64)) + +.. function:: operator **(param a: int(64), b: int(64)) + +.. function:: operator %( a: uint(64), param b: uint(64)) + +.. function:: operator %(param a: uint(64), b: uint(64)) + +.. function:: operator %( a: int(64), param b: int(64)) + +.. function:: operator %(param a: int(64), b: int(64)) + +.. function:: operator ==( a: uint(8), b: int(8)) + +.. function:: operator ==( a: uint(16), b: int(16)) + +.. function:: operator ==( a: uint(32), b: int(32)) + +.. function:: operator ==( a: uint(64), b: int(64)) + +.. function:: operator ==( a: int(8), b: uint(8)) + +.. function:: operator ==( a: int(16), b: uint(16)) + +.. function:: operator ==( a: int(32), b: uint(32)) + +.. function:: operator ==( a: int(64), b: uint(64)) + +.. function:: operator !=( a: uint(8), b: int(8)) + +.. function:: operator !=( a: uint(16), b: int(16)) + +.. function:: operator !=( a: uint(32), b: int(32)) + +.. function:: operator !=( a: uint(64), b: int(64)) + +.. function:: operator !=( a: int(8), b: uint(8)) + +.. function:: operator !=( a: int(16), b: uint(16)) + +.. function:: operator !=( a: int(32), b: uint(32)) + +.. function:: operator !=( a: int(64), b: uint(64)) + +.. function:: operator >( a: uint(8), b: int(8)) + +.. function:: operator >( a: uint(16), b: int(16)) + +.. function:: operator >( a: uint(32), b: int(32)) + +.. function:: operator >( a: uint(64), b: int(64)) + +.. function:: operator >( a: int(8), b: uint(8)) + +.. function:: operator >( a: int(16), b: uint(16)) + +.. function:: operator >( a: int(32), b: uint(32)) + +.. function:: operator >( a: int(64), b: uint(64)) + +.. function:: operator >(param a: uint(8), b: uint(8)) + +.. function:: operator >(param a: uint(16), b: uint(16)) + +.. function:: operator >(param a: uint(32), b: uint(32)) + +.. function:: operator >(param a: uint(64), b: uint(64)) + +.. function:: operator >(param a: int(8), b: int(8)) + +.. function:: operator >(param a: int(16), b: int(16)) + +.. function:: operator >(param a: int(32), b: int(32)) + +.. function:: operator >(param a: int(64), b: int(64)) + +.. function:: operator >=( a: uint(8), b: int(8)) + +.. function:: operator >=( a: uint(16), b: int(16)) + +.. function:: operator >=( a: uint(32), b: int(32)) + +.. function:: operator >=( a: uint(64), b: int(64)) + +.. function:: operator >=( a: int(8), b: uint(8)) + +.. function:: operator >=( a: int(16), b: uint(16)) + +.. function:: operator >=( a: int(32), b: uint(32)) + +.. function:: operator >=( a: int(64), b: uint(64)) + +.. function:: operator >=( a: uint(8), param b: uint(8)) + +.. function:: operator >=( a: uint(16), param b: uint(16)) + +.. function:: operator >=( a: uint(32), param b: uint(32)) + +.. function:: operator >=( a: uint(64), param b: uint(64)) + +.. function:: operator >=( a: int(8), param b: int(8)) + +.. function:: operator >=( a: int(16), param b: int(16)) + +.. function:: operator >=( a: int(32), param b: int(32)) + +.. function:: operator >=( a: int(64), param b: int(64)) + +.. function:: operator <=( a: uint(8), b: int(8)) + +.. function:: operator <=( a: uint(16), b: int(16)) + +.. function:: operator <=( a: uint(32), b: int(32)) + +.. function:: operator <=( a: uint(64), b: int(64)) + +.. function:: operator <=( a: int(8), b: uint(8)) + +.. function:: operator <=( a: int(16), b: uint(16)) + +.. function:: operator <=( a: int(32), b: uint(32)) + +.. function:: operator <=( a: int(64), b: uint(64)) + +.. function:: operator <=(param a: uint(8), b: uint(8)) + +.. function:: operator <=(param a: uint(16), b: uint(16)) + +.. function:: operator <=(param a: uint(32), b: uint(32)) + +.. function:: operator <=(param a: uint(64), b: uint(64)) + +.. function:: operator <=(param a: int(8), b: int(8)) + +.. function:: operator <=(param a: int(16), b: int(16)) + +.. function:: operator <=(param a: int(32), b: int(32)) + +.. function:: operator <=(param a: int(64), b: int(64)) + +.. function:: proc isGenericType(type t) param + +.. function:: proc isNilableClassType(type t) param + +.. function:: proc isNonNilableClassType(type t) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t: unmanaged) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t: borrowed) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t) param + +.. data:: const QIO_STYLE_ELEMENT_STRING: int + +.. data:: const QIO_STYLE_ELEMENT_COMPLEX: int + +.. data:: const QIO_STYLE_ELEMENT_ARRAY: int + +.. data:: const QIO_STYLE_ELEMENT_AGGREGATE: int + +.. data:: const QIO_STYLE_ELEMENT_TUPLE: int + +.. data:: const QIO_STYLE_ELEMENT_BYTE_ORDER: int + +.. data:: const QIO_STYLE_ELEMENT_IS_NATIVE_BYTE_ORDER: int + +.. data:: const QIO_STYLE_ELEMENT_SKIP_UNKNOWN_FIELDS: int + +.. data:: const QIO_ARRAY_FORMAT_SPACE: int + +.. data:: const QIO_ARRAY_FORMAT_CHPL: int + +.. data:: const QIO_ARRAY_FORMAT_JSON: int + +.. data:: const QIO_AGGREGATE_FORMAT_BRACES: int + +.. data:: const QIO_AGGREGATE_FORMAT_CHPL: int + +.. data:: const QIO_AGGREGATE_FORMAT_JSON: int + +.. data:: const QIO_TUPLE_FORMAT_CHPL: int + +.. data:: const QIO_TUPLE_FORMAT_SPACE: int + +.. data:: const QIO_TUPLE_FORMAT_JSON: int + +.. class:: chpl_ModuleDeinit : writeSerializable + + .. attribute:: const moduleName: c_ptrConst(c_char) + + .. attribute:: const deinitFun: chpl_c_fn_ptr + + .. attribute:: const prevModule: unmanaged(chpl_ModuleDeinit?) + + .. method:: override proc serialize( writer, ref serializer) throws + +.. data:: var chpl_moduleDeinitFuns = nil: unmanaged(chpl_ModuleDeinit?) + +.. function:: proc chpl_checkLegalTypeFieldAccessor( thisArg, type fieldType, param fieldName) type + +.. function:: proc chpl_checkLegalTypeFieldAccessor(type thisArg, type fieldType, param fieldName) type + +.. function:: proc _to_unmanaged(type t) type + +.. function:: proc _to_unmanaged( arg) + +.. function:: proc _to_borrowed(type t) type + +.. function:: proc _to_borrowed( arg) + +.. function:: proc _to_nonnil(type t) type + +.. function:: proc _to_nonnil( arg) + +.. function:: proc _to_nilable(type t) type + +.. function:: proc _to_nilable( arg) + +.. function:: proc chpl_checkBorrowIfVar( arg, param isWhile) + +.. function:: proc chpl_checkBorrowIfVar(type arg, param isWhile) + +.. function:: proc _removed_cast(in x) + +.. function:: proc chpl_supportsBoundedCoforall( iterable, param zippered) param + +.. function:: proc chpl_boundedCoforallSize( iterable, param zippered) + +.. function:: proc chpl_field_neq( a: [] ?t, b: [] t) + + The following chpl_field_*() overloads support compiler-generated + comparison operators for records with array fields + +.. function:: proc chpl_field_neq( a, b) where !isArrayType(a.type) + +.. function:: proc chpl_field_lt( a: [] ?t, b: [] t) + +.. function:: proc chpl_field_lt( a, b) where !isArrayType(a.type) + +.. function:: proc chpl_field_gt( a: [] ?t, b: [] t) + +.. function:: proc chpl_field_gt( a, b) where !isArrayType(a.type) + +.. function:: proc chpl__bothLocal(const ref a, const ref b) + diff --git a/docs/internal/_sources/modules/internal/ChapelBase/currentTask.rst.txt b/docs/internal/_sources/modules/internal/ChapelBase/currentTask.rst.txt new file mode 100644 index 000000000..60a1b16e1 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelBase/currentTask.rst.txt @@ -0,0 +1,22 @@ +.. default-domain:: chpl + +.. module:: currentTask + :noindex: + +currentTask +=========== +**Usage** + +.. code-block:: chapel + + use ChapelBase.currentTask; + + +or + +.. code-block:: chapel + + import ChapelBase.currentTask; + +.. function:: proc yieldExecution() + diff --git a/docs/internal/_sources/modules/internal/ChapelContext.rst.txt b/docs/internal/_sources/modules/internal/ChapelContext.rst.txt new file mode 100644 index 000000000..4afa8626b --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelContext.rst.txt @@ -0,0 +1,22 @@ +.. default-domain:: chpl + +.. module:: ChapelContext + :noindex: + +ChapelContext +============= +**Usage** + +.. code-block:: chapel + + use ChapelContext; + + +or + +.. code-block:: chapel + + import ChapelContext; + +.. function:: proc chpl__verifyTypeContext( x) + diff --git a/docs/internal/_sources/modules/internal/ChapelDebugPrint.rst.txt b/docs/internal/_sources/modules/internal/ChapelDebugPrint.rst.txt new file mode 100644 index 000000000..a598b007b --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelDebugPrint.rst.txt @@ -0,0 +1,44 @@ +.. default-domain:: chpl + +.. module:: ChapelDebugPrint + :noindex: + +ChapelDebugPrint +================ +**Usage** + +.. code-block:: chapel + + use ChapelDebugPrint; + + +or + +.. code-block:: chapel + + import ChapelDebugPrint; + +Debug printing for internal modules. + +In order to work around problems with resolution order +(commonly, stdout not defined in methods in DefaultRectangular), +this module implements a debug printing facility that can +be used before IO.chpl is resolved (or initialized). + + +.. function:: proc chpl_debug_stringify(args ...) : string + +.. function:: proc chpl_debug_writeln(args ...) + +.. data:: config param chpl__testParFlag = false + +.. data:: var chpl__testParOn = false + +.. function:: proc chpl__testParStart() + +.. function:: proc chpl__testParStop() + +.. function:: proc chpl__testPar(args ...) + +.. function:: proc chpl__testParWriteln(args ...) + diff --git a/docs/internal/_sources/modules/internal/ChapelDistribution.rst.txt b/docs/internal/_sources/modules/internal/ChapelDistribution.rst.txt new file mode 100644 index 000000000..23427d183 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelDistribution.rst.txt @@ -0,0 +1,557 @@ +.. default-domain:: chpl + +.. module:: ChapelDistribution + :noindex: + +ChapelDistribution +================== +**Usage** + +.. code-block:: chapel + + use ChapelDistribution; + + +or + +.. code-block:: chapel + + import ChapelDistribution; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: _distribution : writeSerializable, readDeserializable + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc init( _pid: int, _instance, _unowned: bool) + + .. method:: proc init( value) + + .. method:: proc init=(const ref other: _distribution) + + .. method:: proc _value + + .. method:: proc _do_destroy() + + .. method:: proc deinit() + + .. method:: proc clone() + + .. method:: proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false) + + .. method:: proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, definedConst: bool = false) + + .. method:: proc newAssociativeDom(type idxType, param parSafe: bool = true) + + .. method:: proc newSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc idxToLocale( ind) + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc displayRepresentation() + + .. method:: proc targetLocales() const ref + + + Return an array of locales over which this distribution was declared. + + +.. class:: BaseDist + + .. attribute:: var _doms_containing_dist: int + + .. attribute:: var _domsLock: chpl_LocalSpinlock + + .. attribute:: var _free_when_no_doms: bool + + .. attribute:: var pid: int = nullPid + + .. method:: proc deinit() + + .. method:: proc remove() : unmanaged(BaseDist?) + + .. method:: proc remove_dom( x: unmanaged(BaseDom)) : bool + + .. method:: proc add_dom( x: unmanaged(BaseDom)) + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds) + + .. method:: proc dsiNewAssociativeDom(type idxType, param parSafe: bool) + + .. method:: proc dsiNewSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc dsiDestroyDist() + + .. method:: proc trackDomains() param + + .. method:: proc dsiTrackDomains() + + .. method:: proc singleton() param + + .. method:: proc dsiIsLayout() param + +.. class:: BaseDom + + .. attribute:: var _arrs_head: unmanaged(BaseArr?) + + .. attribute:: var _arrs_containing_dom: int + + .. attribute:: var _arrsLock: chpl_LocalSpinlock + + .. attribute:: var _free_when_no_arrs: bool + + .. attribute:: var pid: int = nullPid + + .. attribute:: var definedConst: bool + + .. method:: proc init() + + .. method:: proc deinit() + + .. itermethod:: iter _arrs : unmanaged(BaseArr) + + .. method:: proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: proc dnsError(param op: string) + + .. method:: proc dsiLow + + .. method:: proc dsiHigh + + .. method:: proc dsiAlignedLow + + .. method:: proc dsiAlignedHigh + + .. method:: proc dsiFirst + + .. method:: proc dsiLast + + .. method:: proc dsiStride + + .. method:: proc dsiAlignment + + .. method:: proc dsiIndexOrder( i) + + .. method:: proc dsiCreateIndexBuffer( size) + + .. method:: proc trackArrays() + + .. method:: proc remove() : (unmanaged(BaseDom?), unmanaged(BaseDist?)) + + .. method:: proc remove_arr( x: unmanaged(BaseArr), param rmFromList = true) : bool + + .. method:: proc add_arr( x: unmanaged(BaseArr), param locking = true, param addToList = true) + + .. method:: proc remove_containing_arr( x: unmanaged(BaseArr)) + + .. method:: proc add_containing_arr( x: unmanaged(BaseArr)) + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc linksDistribution() param + + .. method:: proc dsiLinksDistribution() + + .. method:: proc dsiDestroyDom() + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiSupportsAutoLocalAccess() param + + .. method:: proc dsiSupportsOffsetAutoLocalAccess() param + + .. method:: proc dsiAutoLocalAccessOffsetCheck( offsets) + + .. method:: proc dsiIteratorYieldsLocalElements() param + + .. method:: proc isRectangular() param + + .. method:: proc isAssociative() param + + .. method:: proc isSparse() param + + .. method:: proc type isDefaultRectangular() param + + .. method:: proc isDefaultRectangular() param + + .. method:: proc isSliceDomainView() param + + .. method:: proc isRankChangeDomainView() param + + .. method:: proc isReindexDomainView() param + +.. class:: BaseRectangularDom : BaseDom + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: override proc isRectangular() param + + .. method:: proc getBaseArrType() type + + .. method:: proc deinit() + + .. method:: proc dsiAdd(in x) + + .. method:: proc dsiRemove( x) + +.. class:: BaseSparseDomImpl : BaseSparseDom(?) + + .. attribute:: var nnzDom = {1..0} + + .. method:: proc deinit() + + .. method:: override proc dsiBulkAdd( inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: override proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc _grow( size: int, factor = arrayAsVecGrowthFactor) + + Grow domain if necessary + + .. method:: proc _shrink( size: int, factor = arrayAsVecGrowthFactor) + + Shrink domain if necessary + + .. method:: proc _bulkGrow() + + .. method:: proc _countDuplicates( arr) where isArray(arr) + + .. method:: proc bulkAdd_prepareInds(ref inds, dataSorted, isUnique, cmp) + + .. method:: proc __getActualInsertPts( d, inds, isUnique) + + .. method:: proc dsiClear() + +.. record:: SparseIndexBuffer + + .. attribute:: param rank: int + + .. attribute:: var obj: borrowed(BaseSparseDom(?)) + + .. attribute:: type idxType = if rank == 1 then int else rank * int + + .. attribute:: var bufDom = domain(1) + + .. attribute:: var buf: [bufDom] idxType + + .. attribute:: var cur = 0 + + .. method:: proc init( size, param rank: int, obj) + + .. method:: proc ref deinit() + + .. method:: proc ref add( idx: idxType) + + .. method:: proc ref commit() + +.. class:: BaseSparseDom : BaseDom + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: var parentDom + + .. method:: override proc isSparse() param + + var nnz = 0; //: int; + + .. method:: proc getNNZ() : int + + .. method:: proc deinit() + + .. method:: proc dsiClear() + + .. method:: proc dsiBulkAdd( inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc boundsCheck( ind: index(rank, idxType)) : void + + .. method:: proc canDoDirectAssignment( rhs: domain) + + .. method:: proc dsiDim( d: int) + + .. method:: proc dsiDims() + + .. method:: proc dsiNumIndices + + .. method:: proc dsiSize + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst : rank*idxType + + .. method:: override proc dsiLast : rank*idxType + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiCreateIndexBuffer( size) + +.. class:: BaseAssociativeDom : BaseDom + + .. method:: override proc isAssociative() param + + .. method:: proc deinit() + + .. method:: proc dsiClear() + + .. method:: proc dsiAdd(in idx) + + .. method:: proc rank param + +.. class:: BaseArr + + .. attribute:: var prev: unmanaged(BaseArr?) + + .. attribute:: var next: unmanaged(BaseArr?) + + .. attribute:: var pid: int = nullPid + + .. attribute:: var _decEltRefCounts: bool = false + + .. attribute:: var _resizePolicy = chpl_ddataResizePolicy.normalInit + + .. method:: proc chpl__rvfMe() param + + .. method:: proc isSliceArrayView() param + + .. method:: proc isRankChangeArrayView() param + + .. method:: proc isReindexArrayView() param + + .. method:: proc deinit() + + .. method:: proc dsiStaticFastFollowCheck(type leadType) param + + .. method:: proc dsiGetBaseDom() : unmanaged(BaseDom) + + .. method:: proc remove(param rmFromList: bool) + + .. method:: proc chpl_setResizePolicy( policy: chpl_ddataResizePolicy) + + .. method:: proc chpl_isElementTypeDefaultInitializable() : bool + + .. method:: proc chpl_isElementTypeNonNilableClass() : bool + + .. method:: proc chpl_unsafeAssignIsClassElementNil( manager, idx) : bool + + .. method:: proc chpl_unsafeAssignHaltUninitializedElement( idx) + + .. method:: proc dsiElementInitializationComplete() + + .. method:: proc dsiElementDeinitializationComplete() + + .. method:: proc dsiDestroyArr( deinitElts: bool) + + .. method:: proc dsiReallocate( d: domain) + + .. method:: proc dsiPostReallocate() + + .. method:: proc _purge( ind: int) + + .. method:: proc _resize( length: int, old_map) + + .. method:: proc sparseShiftArray( shiftrange, initrange) + + .. method:: proc sparseShiftArrayBack( shiftrange) + + .. method:: proc sparseBulkShiftArray( shiftMap, oldnnz) + + .. method:: proc _defaultInitSlot( slot: int) + + .. method:: proc _deinitSlot( slot: int) + + .. method:: proc _startRehash( newSize: int) + + .. method:: proc _finishRehash( oldSize: int) + + .. method:: proc _moveElementDuringRehash( oldslot: int, newslot: int) + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiSupportsAlignedFollower() param + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc type isDefaultRectangular() param + + .. method:: proc isDefaultRectangular() param + + .. method:: proc doiCanBulkTransferRankChange() param + + .. method:: proc decEltCountsIfNeeded() + + .. method:: proc dsiIteratorYieldsLocalElements() param + +.. class:: AbsBaseArr : BaseArr + + This subclass is created to allow eltType to be defined in one place + instead of every subclass of BaseArr. It can't be put on BaseArr due to + BaseDom relying on BaseArr not being generic (it creates a list of BaseArrs + that it refers to and lists can't contain multiple instantiations of a + generic). + + + .. attribute:: type eltType + + .. method:: override proc decEltCountsIfNeeded() + +.. class:: BaseArrOverRectangularDom : BaseArr + + BaseArrOverRectangularDom has this signature so that dsiReallocate + can be overridden with the right tuple size. + + Note that eltType is not included here. eltType could be included + in a base class, but here we're looking for a way to narrow + overloaded functions to only those working with a particular + kind of bounding box. So if eltType is included, we should make + another base class. + + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc dsiReallocate( bounds: rank*range(idxType, boundKind.both, strides)) + + .. method:: override proc dsiPostReallocate() + + .. method:: proc deinit() + +.. class:: BaseRectangularArr : BaseArrOverRectangularDom(?) + + .. attribute:: type eltType + + rank, idxType, strides are from BaseArrOverRectangularDom + + .. method:: proc deinit() + + .. method:: override proc chpl_isElementTypeDefaultInitializable() : bool + + .. method:: override proc chpl_isElementTypeNonNilableClass() : bool + + .. method:: override proc chpl_unsafeAssignHaltUninitializedElement( idx) + + .. method:: override proc decEltCountsIfNeeded() + +.. class:: BaseSparseArr : AbsBaseArr(?) + + + * BaseSparseArr is very basic/generic so that we have some flexibility in + * implementing sparse array classes. + + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: var dom + + .. method:: override proc dsiGetBaseDom() + + : DefaultSparseDom(?); + + .. method:: proc deinit() + +.. class:: BaseSparseArrImpl : BaseSparseArr(?) + + + * All the common helpers/methods in implementations of internal sparse arrays + * go here. + + + .. attribute:: var data: [dom.nnzDom] eltType + + .. method:: proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool) + + .. method:: proc deinit() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. attribute:: var irv: eltType + + .. method:: proc IRV ref + + .. method:: override proc sparseBulkShiftArray( shiftMap, oldnnz) + + .. method:: override proc sparseShiftArray( shiftrange, initrange) + + .. method:: override proc sparseShiftArrayBack( shiftrange) + +.. function:: proc _delete_dist( dist: unmanaged(BaseDist), privatized: bool) + +.. function:: proc _delete_dom( dom, privatized: bool) + +.. function:: proc _delete_arr( arr: unmanaged(BaseArr), param privatized: bool, deinitElts = true) + +.. function:: proc chpl_assignDomainWithGetSetIndices( lhs: ?t, rhs: domain) where isSubtype(_to_borrowed(t), BaseRectangularDom) + +.. function:: proc chpl_assignDomainWithIndsIterSafeForRemoving( lhs: ?t, rhs: domain) where isSubtype(_to_borrowed(t), BaseSparseDom) || isSubtype(_to_borrowed(t), BaseAssociativeDom) + diff --git a/docs/internal/_sources/modules/internal/ChapelDomain.rst.txt b/docs/internal/_sources/modules/internal/ChapelDomain.rst.txt new file mode 100644 index 000000000..f11158470 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelDomain.rst.txt @@ -0,0 +1,1267 @@ +.. default-domain:: chpl + +.. module:: ChapelDomain + :noindex: + +ChapelDomain +============ +**Usage** + +.. code-block:: chapel + + use ChapelDomain; + + +or + +.. code-block:: chapel + + import ChapelDomain; + +.. data:: config const defaultHashTableResizeThreshold = 0.5 + + + Fractional value that specifies how full this domain can be + before requesting additional memory. The default value of + 0.5 means that the map will not resize until the map is more + than 50% full. The acceptable values for this argument are + between 0 and 1, exclusive, meaning (0,1). A lower + `defaultHashTableResizeThreshold` value can potentially + improve indexing performance, since the table will likely + have fewer collisions, while a higher value can help save + memory. + Note that this value also impacts all of Chapel's hash-based + data structures, such as `set` and `map`. + + +.. data:: config param noNegativeStrideWarnings = false + + Compile with ``-snoNegativeStrideWarnings`` + to suppress the warning about arrays and slices with negative strides. + +.. function:: proc _getDomain( value) + +.. function:: proc tupleOfRangesSlice( base, slice) where chpl__isTupleOfRanges(base) && chpl__isTupleOfRanges(slice) + +.. function:: proc chpl__buildDomainRuntimeType( dist, param rank: int, type idxType = int, param strides: strideKind = strideKind.one) type + +.. function:: proc chpl__buildDomainRuntimeType( dist, type idxType, param parSafe: bool = assocParSafeDefault) type + +.. function:: proc chpl__buildSparseDomainRuntimeType( dist, parentDom: domain) type + +.. function:: proc chpl__buildSparseDomainRuntimeTypeForParentDomain( parentDom) type + +.. function:: proc chpl__buildSparseDomainRuntimeTypeForParentDomain(type parentDom) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, param rank: int, type idxType = int, param strides: strideKind, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, type idxType, param parSafe: bool, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, parentDom: domain, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseRectangularDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseAssociativeDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseSparseDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type + +.. function:: proc chpl__buildSubDomainType( dom: domain) type + +.. function:: proc chpl__isTupleOfRanges( tup) param + +.. function:: proc chpl__buildDomainExpr(ranges ..., definedConst) where chpl__isTupleOfRanges(ranges) + +.. function:: proc chpl__buildDomainExpr(const keys ..., definedConst) + +.. function:: proc chpl__ensureDomainExpr(const ref x: domain) const ref + +.. function:: proc chpl__ensureDomainExpr(x ...) + +.. function:: proc chpl__ensureDomainExpr(type t) + +.. function:: proc chpl__isRectangularDomType(type domainType) param + +.. function:: proc chpl__isSparseDomType(type domainType) param + +.. function:: proc chpl__parentDomainFromDomainRuntimeType(type domainType) + +.. function:: proc chpl__domainFromArrayRuntimeType(type rtt) + +.. function:: proc chpl_isAssociativeDomClass( dc: BaseAssociativeDom) param + +.. function:: proc chpl_isAssociativeDomClass( dc) param + +.. function:: proc chpl__checkDomainsMatch( a: [], b) + +.. function:: proc chpl__checkDomainsMatch( a: _iteratorRecord, b) + +.. function:: proc chpl_countDomHelp( dom, counts) + +.. function:: operator #( dom: domain, counts: integral) + +.. function:: operator #( dom: domain, counts: _tuple) + +.. function:: operator #( dom: domain, counts) + +.. function:: operator +( d: domain, i: ?t) where d.isRectangular() && noRDadds(t) + +.. function:: operator +( i: ?t, d: domain) where d.isRectangular() && noRDadds(t) + +.. function:: operator -( d: domain, i: ?t) where d.isRectangular() && noRDadds(t) + +.. function:: operator +(in d: domain, i: index(d)) where d.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +( i, in d: domain) where isSubtype(i.type, index(d)) && d.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +(in d1: domain, d2: domain) where d1.type == d2.type && d1.isIrregular() && d2.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +( d1: domain, d2: domain) + +.. function:: operator +=(ref D: domain, idx) + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator +=(ref D: domain, param idx) + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator -(in d: domain, i: index(d)) where d.isIrregular() + + .. warning:: + + '-' on domains is unstable and may change in the future + +.. function:: operator -(in d1: domain, d2: domain) where d1.type == d2.type && d1.isSparse() + +.. function:: operator -( d1: domain, d2: domain) + +.. function:: operator -=(ref D: domain, idx) + + .. warning:: + + '-=' on domains is unstable and may change in the future + +.. function:: operator -=(ref D: domain, param idx) + + .. warning:: + + '-=' on domains is unstable and may change in the future + +.. function:: operator ==( d1: domain, d2: domain) where d1.isRectangular() && d2.isRectangular() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isRectangular() && d2.isRectangular() + +.. function:: operator ==( d1: domain, d2: domain) where d1.isAssociative() && d2.isAssociative() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isAssociative() && d2.isAssociative() + +.. function:: operator ==( d1: domain, d2: domain) where d1.isSparse() && d2.isSparse() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isSparse() && d2.isSparse() + +.. function:: operator ==( d1: domain, d2: domain) + +.. function:: operator !=( d1: domain, d2: domain) + +.. function:: proc chpl_sameDomainKind( d1: domain, d2: domain) param + +.. function:: operator -( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '-' on domains is unstable and may change in the future + +.. function:: operator -=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '-=' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, no error + occurs. + + +.. function:: operator |( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '|' on domains is unstable and may change in the future + +.. function:: operator |=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '|=' on domains is unstable and may change in the future + +.. function:: operator |=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator +=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator &( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '&' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, no error + occurs. + + +.. function:: operator &=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '&=' on domains is unstable and may change in the future + +.. function:: operator &=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator ^( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '^' on domains is unstable and may change in the future + +.. function:: operator ^=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '^=' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, it is + added to the LHS. + + +.. function:: operator ^=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator +=(ref sd: domain, inds: [] index(sd)) where sd.isSparse() + +.. function:: operator +=(ref sd: domain, d: domain) where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType + +.. function:: operator -=(ref sd: domain, inds: [] index(sd)) where sd.isSparse() + +.. function:: operator -=(ref sd: domain, d: domain) where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType + +.. function:: operator = (ref a: domain, b: domain) + +.. function:: proc chpl__checkTupIrregDomAssign(const ref d, const ref idx, param msg) + +.. function:: proc chpl__isLegalRectTupDomAssign( d, t) param + +.. function:: operator = (ref a: domain, b: _tuple) + +.. function:: operator = (ref d: domain, r: range(?)) + +.. function:: operator = (ref a: domain, b) + +.. function:: operator by( a: domain, b) + +.. function:: operator by( a: domain, param b: integral) + +.. function:: operator align( a: domain, b) + +.. function:: proc chpl_domainDistIsLayout( d: domain) param + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs, definedConst: bool) + +.. record:: _domain : writeSerializable, readDeserializable + + The domain type. + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc chpl__promotionType() type + + .. method:: proc init( _pid: int, _instance, _unowned: bool) + + .. method:: proc init( value) + + .. method:: proc init( d, param rank: int, type idxType = int, param strides = strideKind.one, definedConst: bool = false) + + .. method:: proc init( d, param rank: int, type idxType = int, param strides = strideKind.one, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false) + + .. method:: proc init( d, type idxType, param parSafe: bool = true, definedConst: bool = false) + + .. method:: proc init( d, dom: domain, definedConst: bool = false) + + .. method:: proc init=(const ref other: domain) where other.isRectangular() + + .. method:: proc init=(const ref other: domain) + + .. method:: proc _value + + .. method:: proc chpl__serialize() where this._value.isDefaultRectangular() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc _do_destroy() + + .. method:: proc deinit() + + .. method:: proc distribution + + Returns the domain map that implements this domain. + + .. method:: proc dist + + Prevent users from accessing internal datatypes unintentionally. It + used to be a public method deprecated in favor of domain.distribution. + + .. method:: proc rank param + + Returns the number of dimensions in this domain. + + .. method:: proc idxType type + + Returns the type used to represent the indices of this domain. + For a multidimensional domain, this represents the + per-dimension index type. + + .. method:: proc fullIdxType type + + Returns the full type used to represent the indices of this + domain. For a 1D or associative domain, this is the same + as :proc:`idxType` above. For a multidimensional domain, it + is :proc:`rank` * :proc:`idxType`. + + .. method:: proc chpl_integralIdxType type + + .. method:: proc strides param where this.isRectangular() + + Returns the 'strides' parameter of the domain. + + .. method:: proc strides param where this.isSparse() + + .. method:: proc strides param where this.isAssociative() + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc stride + + Returns the stride of the indices in this domain. + + .. method:: proc stride param where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne() + + .. method:: proc alignment + + Returns the alignment of the indices in this domain. + + .. method:: proc alignment param where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne() + + .. method:: proc targetLocales() const ref + + Returns an array of locales over which this domain + has been distributed. + + .. itermethod:: iter these() + + Yield the domain indices + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, param fast: bool = false) where tag == iterKind.follower + + .. method:: proc this( d: domain) + + .. method:: proc this(ranges ...rank) where chpl__isTupleOfRanges(ranges) + + .. method:: proc this(args ...rank) where _validRankChangeArgs(args, _value.idxType) + + .. method:: proc this(i: integral ...rank) + + .. method:: proc this(args ...?numArgs) + + .. method:: proc isEmpty() : bool + + Returns true if the domain has no indices. + + .. method:: proc size : int + + Returns the number of indices in this domain as an ``int``. + + .. method:: proc sizeAs(type t: integral) : t + + Returns the number of indices in this domain as the specified type. + + .. method:: proc dims() + + + Returns a tuple of ranges describing the bounds of a rectangular domain. + For a sparse domain, returns the bounds of the parent domain. + + + .. method:: proc dim( d: int) + + + Returns a range representing the boundary of this + domain in a particular dimension. + + + .. method:: proc dim(param d: int) + + .. itermethod:: iter dimIter(param d, ind) + + .. method:: proc shape : rank*int where this.isRectangular() || this.isSparse() + + Returns a tuple of ``int`` values representing the size of each + dimension. + + For a sparse domain, this returns the shape of the parent domain. + + + .. method:: proc chpl_shapeAs(type t: integral) + + .. method:: proc shape where this.isAssociative() + + Associative domains assumed to be 1-D. + + .. method:: proc shape + + Unsupported case + + .. method:: proc indices + + This error overload is here because without it, the domain's + indices tend to be promoted across the `.indices` calls of + their idxType which can be very confusing. + + .. method:: proc boundingBox() where this.isRectangular() + + .. method:: proc low + + Returns the lowest index represented by a rectangular domain. + + .. method:: proc low where this.isAssociative() + + .. method:: proc high + + Returns the highest index represented by a rectangular domain. + + .. method:: proc high where this.isAssociative() + + .. method:: proc lowBound + + Returns the domain's 'pure' low bound. For example, given the + domain ``{1..10 by -2}``, ``.lowBound`` would return 1, whereas + ``.low`` would return 2 since it's the lowest index represented + by the domain. This routine is only supported on rectangular + domains. + + .. method:: proc highBound + + Returns the domain's 'pure' high bound. For example, given the + domain ``{1..10 by 2}``, ``.highBound`` would return 10, + whereas ``.high`` would return 9 since it's the highest index + represented by the domain. This routine is only supported on + rectangular domains. + + .. method:: proc first + + Returns the first index in this domain. + + .. method:: proc last + + Returns the last index in this domain. + + .. method:: proc chpl_checkEltType(type eltType) + + .. method:: proc chpl_checkNegativeStride() + + .. method:: proc buildArray(type eltType, param initElts: bool) + + .. method:: proc tryCreateArray(type eltType) throws + + .. warning:: + + tryCreateArray() is subject to change in the future. + + + Invoking this method will attempt to create and return an array + declared over the domain instance. If there is not enough memory + to satisfy the allocation, an error will be thrown, allowing + the program to continue if handled, as opposed to halting and + thus stopping program execution. + + This method will be most reliable in configurations that use a + fixed heap (e.g., when using ``CHPL_GASNET_SEGMENT=large``), but + can be called in all configurations. In the case of a dynamic + heap, it is possible that overcommit will cause the array + allocation to succeed, even if there is not enough physical + memory to satisfy the allocation, which will then fail with a bus + error when attempting to access the array. + + This method can be called on all domains that implement a + 'doiTryCreateArray' method. + + Throws an `ArrayOomError` when out of memory allocating elements. + + + .. method:: proc tryCreateArray(type eltType, initExpr: ?t) throws where isSubtype(t, _iteratorRecord) || isCoercible(t, eltType) + + .. warning:: + + tryCreateArray() is subject to change in the future. + + .. method:: proc tryCreateArray(type eltType, initExpr: [?dom] ?arrayEltType) throws where this.rank == dom.rank && isCoercible(arrayEltType, eltType) + + .. warning:: + + tryCreateArray() is subject to change in the future. + + .. method:: proc buildArrayWith(type eltType, data: _ddata(eltType), allocSize: int) + + .. record:: unsafeAssignManager : contextManager + + + An instance of this type is a context manager that can be used in + manage statements to resize arrays of non-default-initializable + element types after resizing their underlying domain. + + Using an instance of this type in a manage statement will cause a + domain assignment to occur before executing the statement body. The + left-hand-side of the assignment is the receiver domain that had + ``unsafeAssign()`` called on it, while the right-hand-side is the + `dom` formal of the same call. + + If the assignment adds new indices to the assigned domain, then + corresponding elements are added to arrays declared over it. + If an array's element type is non-default-initializable, then any + newly added elements remain uninitialized. + + The ``initialize()`` method can be used within the manage statement + body to initialize new elements of non-default-initializable arrays + declared over the assigned domain. + + The new elements of default-initializable arrays over the assigned + domain will be default-initialized. They can be set to desired + values as usual, for example using an assignment operator. + + + .. attribute:: var _lhsInstance + + .. attribute:: var _lhsPid: int + + .. attribute:: var _rhsInstance + + .. attribute:: var _rhsPid: int + + .. attribute:: var _oldLhsDomainCopy: domain(?) + + .. attribute:: param _checks: bool + + .. attribute:: var _isActiveManager: bool + + .. itermethod:: iter _arraysOverLhsDom() + + .. method:: proc postinit() + + .. method:: proc checks param + + + Returns ``true`` if this manager has runtime safety checks enabled. + + + .. method:: proc type isClassReferenceNil(const ref x) + + .. method:: proc isClassReferenceNil(const ref x) + + .. method:: proc _checkThatArrayShapeIsSupported( arr) param + + .. method:: proc _checkThatIndexMatchesArrayShape( arr, idx) param + + .. method:: proc _isBaseArrClassElementNil( baseArr: BaseArr, idx) + + .. method:: proc isElementInitialized( arr: [?d], idx) + + + Returns ``true`` if the value at a given index in an array has + been initialized. + + + .. method:: proc _checkIfAllElementsAreInitialized( baseArr) + + .. method:: proc ref _ensureNoLongerManagingThis() + + .. method:: proc ref deinit() + + .. method:: proc _isArrayOwnedByLhsDomain( arr) + + .. method:: proc _moveInitializeElement(ref arr, idx, in value) + + .. method:: proc _checkNoChecksWhenNonDefaultInitializableEltType( arr) + + .. method:: proc initialize(ref arr: [?d], idx, in value: arr.eltType) + + + Initializes a newly added array element at an index with a new value. + + If `checks` is ``true`` and the array element at `idx` has already + been initialized, this method will halt. If `checks` is ``false``, + then calling this method on an already initialized element will + result in undefined behavior. + + It is an error if `idx` is not a valid index in `arr`. + + + .. method:: proc ref enterContext() ref + + .. method:: proc ref exitContext(in err: owned(Error?)) throws + + .. itermethod:: iter newIndices() + + + Iterates over any new indices that will be added to this domain as a + result of unsafe assignment. + + + .. method:: proc ref unsafeAssign(const ref dom: domain, param checks: bool = false) + + + Returns an instance of :type:`unsafeAssignManager`. + + The returned context manager can be used in a manage statement to + assign the indices of `dom` into the receiver domain. Within the body + of the manage statement, the manager can initialize elements of + non-default-initializable arrays declared over the receiver domain. + + If `checks` is ``true``, this method will guarantee that: + + - Newly added elements of any non-default-initializable arrays + declared over the receiver domain have been initialized by the + end of the manage statement + - Newly added elements are only initialized once + + These guarantees hold only for initialization done through calls to + the ``initialize()`` method on the context manager. Performing + any other operation on a newly added array element causes undefined + behavior until after ``initialize()`` has been called. + + For example: + + .. code-block:: chapel + + var D = {0..0}; + var A: [D] shared C = [new shared C(0)]; + manage D.unsafeAssign({0..1}, checks=true) as mgr { + // 'D' has a new index '1', so 'A' has a new element at '1', + // which we need to initialize: + mgr.initialize(A, 1, new shared C(1)); + } + + .. note:: + + Checks are not currently supported for arrays of + non-default-initializable element types other than arrays of + non-nilable classes. + + :arg dom: The domain to assign to the receiver + :arg checks: If this manager should provide runtime safety checks + + :returns: A :type:`unsafeAssignManager` for use in manage statements + + + .. method:: proc ref clear() where this.isRectangular() + + Removes all indices from this domain, leaving it empty. + + .. method:: proc ref clear() + + Removes all indices from this domain, leaving it empty. + + .. method:: proc ref remove( idx) + + Removes index ``idx`` from this domain. + + .. method:: proc ref add(in idx) + + Adds index ``idx`` to this domain. This method is also available + as the ``+=`` operator. + Returns the number of indices that were added. + + The domain must be irregular. + + + .. method:: proc ref bulkAdd( inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank == 1 + + .. warning:: + + bulkAdd() is subject to change in the future. + + .. method:: proc ref bulkAddNoPreserveInds(ref inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank == 1 + + .. warning:: + + bulkAddNoPreserveInds() is subject to change in the future. + + .. method:: proc createIndexBuffer( size: int) + + .. warning:: + + createIndexBuffer() is subject to change in the future. + + + Creates an index buffer which can be used for faster index addition. + + For example, instead of: + + .. code-block:: chapel + + var spsDom: sparse subdomain(parentDom); + for i in someIndexIterator() do + spsDom += i; + + You can use `SparseIndexBuffer` for better performance: + + .. code-block:: chapel + + var spsDom: sparse subdomain(parentDom); + var idxBuf = spsDom.createIndexBuffer(size=N); + for i in someIndexIterator() do + idxBuf.add(i); + idxBuf.commit(); + + The above snippet will create a buffer of size N indices, and will + automatically commit indices to the sparse domain as the buffer fills up. + Indices are also committed when the buffer goes out of scope. + + :arg size: Size of the buffer in number of indices. + :type size: int + + + .. method:: proc ref bulkAdd( inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank > 1 + + .. warning:: + + bulkAdd() is subject to change in the future. + + + Adds indices in ``inds`` to this domain in bulk. + + For sparse domains, an operation equivalent to this method is available + with the ``+=`` operator, where the right-hand-side is an array. However, + in that case, default values will be used for the flags ``dataSorted`` and + ``isUnique``. This method is available because in + some cases, expensive operations can be avoided by setting those flags. + To do so, ``bulkAdd`` must be called explicitly (instead of ``+=``). + + .. note:: + + Right now, this method and the corresponding ``+=`` operator are + only available for sparse domains. In the future, we expect that + these methods will be available for all irregular domains. + + .. note:: + + ``nilLocale`` is a sentinel value to denote that the locale where this + addition should occur is unknown. We expect this to change in the + future. + + .. note:: + + This method may make a copy of ``inds`` if the data is not sorted to + preserve the indices used. If the data is already sorted, it is + possible to avoid this extra copy by using :proc:`bulkAddNoPreserveInds`, + which does not copy the indices and may modify ``inds`` in place. + + :arg inds: Indices to be added. ``inds`` must be an array of + ``rank*idxType``, except for 1-D domains, where it must be + an array of ``idxType``. + + :arg dataSorted: ``true`` if data in ``inds`` is sorted. + :type dataSorted: bool + + :arg isUnique: ``true`` if data in ``inds`` has no duplicates. + :type isUnique: bool + + :arg addOn: The locale where the indices should be added. Default value + is ``nil`` which indicates that locale is unknown or there + are more than one. + :type addOn: locale + + :returns: Number of indices added to the domain + :rtype: int + + + .. method:: proc ref bulkAddNoPreserveInds(ref inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank > 1 + + .. warning:: + + bulkAddNoPreserveInds() is subject to change in the future. + + + Adds indices in ``inds`` to this domain in bulk. + + This is nearly identical to :proc:`bulkAdd`. :proc:`bulkAdd` may + make a copy of ``inds`` if the data is unsorted, whereas this method will + modify ``inds`` in place. + + .. note:: + + Right now, this method is only available for sparse domains. + In the future, we expect that this method will be available for all + irregular domains. + + .. note:: + + ``nilLocale`` is a sentinel value to denote that the locale where this + addition should occur is unknown. We expect this to change in the + future. + + :arg inds: Indices to be added. ``inds`` must be an array of + ``rank*idxType``, except for 1-D domains, where it must be + an array of ``idxType``. + + :arg dataSorted: ``true`` if data in ``inds`` is sorted. + :type dataSorted: bool + + :arg isUnique: ``true`` if data in ``inds`` has no duplicates. + :type isUnique: bool + + :arg addOn: The locale where the indices should be added. Default value + is ``nil`` which indicates that locale is unknown or there + are more than one. + :type addOn: locale + + :returns: Number of indices added to the domain + :rtype: int + + + .. method:: proc bulkAdd(args ...) + + .. method:: proc bulkAddNoPreserveInds(args ...) + + .. method:: proc ref requestCapacity( capacity) + + Requests space for a particular number of values in an + domain. + + Currently only applies to associative domains. + + + .. method:: proc contains(const idx: rank*_value.idxType) + + .. method:: proc contains(const idx: _value.idxType ...rank) + + Returns true if this domain contains ``idx``. Otherwise returns false. + For sparse domains, only indices with a value are considered + to be contained in the domain. + + + .. method:: proc contains( other: domain) + + Returns true if this domain contains all the indices in the domain + ``other``. + + .. method:: proc indexOrder( i) + + .. method:: proc orderToIndex( order: int) where this.isRectangular() && isNumericType(this.idxType) + + .. warning:: + + domain.orderToIndex() is unstable and its behavior may change in the future + + + Returns the `ith` index in the domain counting from 0. + For example, ``{2..10 by 2}.orderToIndex(2)`` would return ``6``. + + The order of a multidimensional domain follows its serial iterator. + For example, ``{1..3, 1..2}.orderToIndex(3)`` would return ``(2, 2)``. + + .. note:: + + Right now, this method supports only dense rectangular domains with + numeric indices + + :arg order: Order for which the corresponding index in the domain + has to be found. + + :returns: Domain index for a given order in the domain. + + + .. method:: proc orderToIndex( order) + + .. method:: proc checkOrderBounds( order: int) + + .. method:: proc position( i) + + .. method:: proc expand( off: rank*integral) where !this.isRectangular() + + .. method:: proc expand(off: integral ...rank) + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + .. method:: proc expand( off: rank*integral) + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain expanded by + ``off(d)`` in dimension ``d`` if ``off(d)`` is positive or + contracted by ``off(d)`` in dimension ``d`` if ``off(d)`` + is negative. + + See :proc:`ChapelRange.range.expand` for further information about what + it means to expand a range. + + + + .. method:: proc expand( off: integral) where rank > 1 + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain expanded by + ``off`` in all dimensions if ``off`` is positive or contracted + by ``off`` in all dimensions if ``off`` is negative. + + See :proc:`ChapelRange.range.expand` for further information about what + it means to expand a range. + + + .. method:: proc exterior( off: rank*integral) where !this.isRectangular() + + .. method:: proc exterior(off: integral ...rank) + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + .. method:: proc exterior( off: rank*integral) + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + Returns a new domain that is the exterior portion of the + current domain with ``off(d)`` indices for each dimension ``d``. + If ``off(d)`` is negative, compute the exterior from the low + bound of the dimension; if positive, compute the exterior + from the high bound. + + See :proc:`ChapelRange.range.exterior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc exterior( off: integral) where rank != 1 + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + Returns a new domain that is the exterior portion of the + current domain with ``off`` indices for each dimension. + If ``off`` is negative, compute the exterior from the low + bound of the dimension; if positive, compute the exterior + from the high bound. + + See :proc:`ChapelRange.range.exterior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc interior( off: rank*integral) where !this.isRectangular() + + .. method:: proc interior(off: integral ...rank) + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + .. method:: proc interior( off: rank*integral) + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + Returns a new domain that is the interior portion of the + current domain with ``off(d)`` indices for each dimension + ``d``. If ``off(d)`` is negative, compute the interior from + the low bound of the dimension; if positive, compute the + interior from the high bound. + + See :proc:`ChapelRange.range.interior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc interior( off: integral) where rank != 1 + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + Returns a new domain that is the interior portion of the + current domain with ``off`` indices for each dimension. + If ``off`` is negative, compute the interior from the low + bound of the dimension; if positive, compute the interior + from the high bound. + + See :proc:`ChapelRange.range.interior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc translate( off: rank*integral) where !this.isRectangular() + + .. method:: proc translate(off: integral ...rank) + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + .. method:: proc translate( off: rank*integral) + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain translated by + ``off(d)`` in each dimension ``d``. + + See :proc:`ChapelRange.range.translate` for further information about + what it means to translate a range. + + + + .. method:: proc translate( off: integral) where rank != 1 + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain translated by + ``off`` in each dimension. + + See :proc:`ChapelRange.range.translate()` for further information about + what it means to translate a range. + + + + .. method:: proc chpl__unTranslate(off: integral ...rank) + + .. method:: proc chpl__unTranslate( off: rank*chpl_integralIdxType) + + .. method:: proc ref setIndices( x) + + .. method:: proc getIndices() + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && _value.isDefaultRectangular() + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && !_value.isDefaultRectangular() + + + Returns a local view of the sub-domain (slice) defined by the provided + range(s), halting if the slice contains elements that are not local. + + + .. method:: proc localSlice( d: domain) + + + Returns a local view of the sub-domain (slice) defined by the provided + domain, halting if the slice contains elements that are not local. + + + .. itermethod:: iter sorted( comparator: ?t = chpl_defaultComparator()) + + Yields the domain indices in sorted order. + + .. method:: proc displayRepresentation() + + .. method:: proc defaultSparseDist + + .. method:: proc hasSingleLocalSubdomain() param + + .. warning:: + + 'hasSingleLocalSubdomain' on domains is unstable and may change in the future + + Returns true if the local subdomain can be represented as a single + domain. Otherwise returns false. + + .. method:: proc localSubdomain( loc: locale = here) + + + Returns the subdomain that is local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. itermethod:: iter localSubdomains( loc: locale = here) + + .. warning:: + + 'localSubdomains' on domains is unstable and may change in the future + + + Yields the subdomains that are local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. method:: proc supportsAutoLocalAccess() param + + .. method:: proc supportsOffsetAutoLocalAccess() param + + .. method:: proc autoLocalAccessOffsetCheck( offsets) + + .. method:: proc iteratorYieldsLocalElements() param + + .. method:: proc tryCast(type t: domain) where chpl__isRectangularDomType(t) && this.isRectangular() && this.chpl_domainTryCastIsSafe(t) + + Casts a rectangular domain to a new rectangular domain type. + Throws an IllegalArgumentError when the original bounds and/or stride(s) + do not fit in the new idxType or when the original stride(s) + are not legal for the new `strides` parameter. + + + .. method:: proc tryCast(type t: domain) throws + + .. method:: proc chpl_domainTryCastHelper(type t: _domain) throws + + .. method:: proc chpl_domainTryCastIsSafe(type t: domain) param + + .. method:: operator :( d: _domain, type t: _domain) where chpl__isRectangularDomType(t) && d.isRectangular() && d.chpl_domainCastIsSafe(t) + + Casts a rectangular domain to a new rectangular domain type. + The overload below throws when the original bounds and/or stride + do not fit in the new type or 'strides'. + TODO: should we allow 't' to be generic? + + + .. method:: operator :( d: _domain, type t: domain) throws + + .. method:: proc chpl_domainCastHelper(type t: _domain) throws + + .. method:: proc chpl_domainCastIsSafe(type t: domain) param + + .. method:: operator :( val: _domain, type t: string) + + .. method:: proc isRectangular() param + + Returns true if this domain is a rectangular. + Otherwise returns false. + + .. method:: proc isIrregular() param + + Returns true if ``d`` is an irregular domain; e.g. is not rectangular. + Otherwise returns false. + + .. method:: proc isAssociative() param + + Returns true if ``d`` is an associative domain. + Otherwise returns false. + + .. method:: proc isSparse() param + + Returns true if ``d`` is a sparse domain. Otherwise returns false. + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where chpl_isValidRangeIdxType(t1) && chpl_isValidRangeIdxType(t2) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a rectangular domain with bounds defined by the scalar values `low` + and `high`. If `inclusive` is true, the domain includes the `high` value. + Otherwise, the domain excludes the `high` value. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) && isTuple(high) && isHomogeneousTuple(low) && isHomogeneousTuple(high) && low.size == high.size && (isCoercible(low(0).type, high(0).type) || isCoercible(high(0).type, low(0).type)) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a multidimensional rectangular domain with bounds defined by the + pairwise elements of `low` and `high`. If `inclusive` is true, the domain + includes the `high` values. Otherwise, the domain excludes the `high` + values. For example, `makeRectangularDomain((1, 2), (10,11))` is + equivalent to `{1..10, 2..11}`. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) != isTuple(high) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a rectangular domain with bounds defined by one tuple and one + scalar value. The scalar argument is used in each dimension of the domain, + while the 'n'-th tuple element is used to define the 'n'-th dimension of + the domain. If `inclusive` is true, the domain includes the `high` value. + Otherwise, the domain excludes the `high` value. For example, + `makeRectangularDomain((1, 2), 10)` is equivalent to `{1..10, 2..10}` + and `makeRectangularDomain(1, (10, 11), inclusive=false)` is equivalent + to `{1..<10, 1..<11}`. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) && isTuple(high) + diff --git a/docs/internal/_sources/modules/internal/ChapelGpuSupport.rst.txt b/docs/internal/_sources/modules/internal/ChapelGpuSupport.rst.txt new file mode 100644 index 000000000..d956c1390 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelGpuSupport.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelGpuSupport + :noindex: + +ChapelGpuSupport +================ +**Usage** + +.. code-block:: chapel + + use ChapelGpuSupport; + + +or + +.. code-block:: chapel + + import ChapelGpuSupport; + diff --git a/docs/internal/_sources/modules/internal/ChapelHashing.rst.txt b/docs/internal/_sources/modules/internal/ChapelHashing.rst.txt new file mode 100644 index 000000000..a88125734 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelHashing.rst.txt @@ -0,0 +1,54 @@ +.. default-domain:: chpl + +.. module:: ChapelHashing + :noindex: + +ChapelHashing +============= +**Usage** + +.. code-block:: chapel + + use ChapelHashing; + + +or + +.. code-block:: chapel + + import ChapelHashing; + +.. function:: proc chpl__defaultHashWrapperInner( x) : uint + +.. function:: proc chpl__defaultHashWrapper( x) : int + +.. function:: proc _gen_key( i: uint) : uint + +.. function:: proc _gen_key( i: int) : uint + +.. function:: proc chpl__defaultHashCombine( a: uint, b: uint, fieldnum: int) : uint + +.. method:: proc bool.hash() : uint + +.. method:: proc int.hash() : uint + +.. method:: proc uint.hash() : uint + +.. method:: proc enum.hash() : uint + +.. method:: proc real.hash() : uint + +.. method:: proc complex.hash() : uint + +.. method:: proc imag.hash() : uint + +.. method:: proc chpl_taskID_t.hash() : uint + +.. method:: proc _array.hash() : uint + +.. method:: proc (borrowed(RootClass?)).hash() : uint + +.. method:: proc locale.hash() : uint + +.. method:: proc range.hash() : uint + diff --git a/docs/internal/_sources/modules/internal/ChapelHashtable.rst.txt b/docs/internal/_sources/modules/internal/ChapelHashtable.rst.txt new file mode 100644 index 000000000..cf90df433 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelHashtable.rst.txt @@ -0,0 +1,116 @@ +.. default-domain:: chpl + +.. module:: ChapelHashtable + :noindex: + +ChapelHashtable +=============== +**Usage** + +.. code-block:: chapel + + use ChapelHashtable; + + +or + +.. code-block:: chapel + + import ChapelHashtable; + +.. enum:: enum chpl__hash_status { empty = 0, full, deleted } + + .. enumconstant:: enum constant empty = 0 + + .. enumconstant:: enum constant full + + .. enumconstant:: enum constant deleted + +.. record:: chpl_TableEntry + + .. attribute:: var status: chpl__hash_status = chpl__hash_status.empty + + .. attribute:: var key + + .. attribute:: var val + + .. method:: proc isFull() + +.. iterfunction:: iter _allSlots( size: int) + +.. class:: chpl__rehashHelpers + + .. method:: proc startRehash( newSize: int) + + .. method:: proc moveElementDuringRehash( oldSlot: int, newSlot: int) + + .. method:: proc finishRehash( oldSize: int) + +.. record:: chpl__hashtable + + .. attribute:: type keyType + + .. attribute:: type valType + + .. attribute:: var tableNumFullSlots: int + + .. attribute:: var tableNumDeletedSlots: int + + .. attribute:: var tableSize: int + + .. attribute:: var table: _ddata(chpl_TableEntry(keyType, valType)) + + .. attribute:: var rehashHelpers: owned(chpl__rehashHelpers?) + + .. attribute:: var postponeResize: bool + + .. attribute:: const resizeThreshold: real + + .. attribute:: const startingSize: int + + .. method:: proc init(type keyType, type valType, resizeThreshold = defaultHashTableResizeThreshold, initialCapacity = 16, in rehashHelpers: owned(chpl__rehashHelpers?) = nil) + + .. method:: proc deinit() + + .. method:: proc isSlotFull( slot: int) : bool + + .. itermethod:: iter allSlots() + + .. itermethod:: iter allSlots(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter allSlots(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter allSlots( followThis, param tag: iterKind) where tag == iterKind.follower + + .. method:: proc keysMatch( key1: ?t, key2: t) + + .. method:: proc _findSlot( key: keyType) : (bool, int) + + .. itermethod:: iter _lookForSlots( key: keyType, numSlots = tableSize) + + .. method:: proc ref findAvailableSlot( key: keyType) : (bool, int) + + .. method:: proc ref fillSlot(ref tableEntry: chpl_TableEntry(keyType, valType), in key: keyType, in val: valType) + + .. method:: proc ref fillSlot( slotNum: int, in key: keyType, in val: valType) + + .. method:: proc findFullSlot( key: keyType) : (bool, int) + + .. method:: proc ref clearSlot(ref tableEntry: chpl_TableEntry(keyType, valType), out key: keyType, out val: valType) + + .. method:: proc ref clearSlot( slotNum: int, out key: keyType, out val: valType) + + .. method:: proc ref maybeShrinkAfterRemove() + + .. method:: proc _findPowerOf2( numKeys: int) + + .. method:: proc allocateData( size: int, type tableEltType) + + .. method:: proc allocateTable( size: int) + + .. method:: proc ref rehash( newSize: int) + + .. method:: proc ref requestCapacity( numKeys: int) + + .. method:: proc ref resize( grow: bool) + diff --git a/docs/internal/_sources/modules/internal/ChapelIOSerialize.rst.txt b/docs/internal/_sources/modules/internal/ChapelIOSerialize.rst.txt new file mode 100644 index 000000000..1fa3602f3 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelIOSerialize.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelIOSerialize + :noindex: + +ChapelIOSerialize +================= +**Usage** + +.. code-block:: chapel + + use ChapelIOSerialize; + + +or + +.. code-block:: chapel + + import ChapelIOSerialize; + diff --git a/docs/internal/_sources/modules/internal/ChapelIOStringifyHelper.rst.txt b/docs/internal/_sources/modules/internal/ChapelIOStringifyHelper.rst.txt new file mode 100644 index 000000000..af0418495 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelIOStringifyHelper.rst.txt @@ -0,0 +1,27 @@ +.. default-domain:: chpl + +.. module:: ChapelIOStringifyHelper + :noindex: + +ChapelIOStringifyHelper +======================= +**Usage** + +.. code-block:: chapel + + use ChapelIOStringifyHelper; + + +or + +.. code-block:: chapel + + import ChapelIOStringifyHelper; + +Pull out the portions of stringify that don't rely on IO so that they can +be called without IO and not cause circular dependencies. + +.. function:: proc _can_stringify_direct( t) param: bool + +.. function:: proc stringify_simple(const args ...?k) : string + diff --git a/docs/internal/_sources/modules/internal/ChapelIteratorSupport.rst.txt b/docs/internal/_sources/modules/internal/ChapelIteratorSupport.rst.txt new file mode 100644 index 000000000..82c478f52 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelIteratorSupport.rst.txt @@ -0,0 +1,173 @@ +.. default-domain:: chpl + +.. module:: ChapelIteratorSupport + :noindex: + +ChapelIteratorSupport +===================== +**Usage** + +.. code-block:: chapel + + use ChapelIteratorSupport; + + +or + +.. code-block:: chapel + + import ChapelIteratorSupport; + + +Data parallel constructs (such as ``forall`` loops) are implicitly +vectorizable. If the ``--vectorize`` compiler flag is thrown the Chapel +compiler will emit vectorization hints to the backend compiler, though the +effects will vary based on the target compiler. + +In order to allow users to explicitly request vectorization, this prototype +vectorizing iterator is being provided. Loops that invoke this iterator will +be marked with vectorization hints, provided the ``--vectorize`` flag is +thrown. + +This iterator is currently available for all Chapel programs and does not +require a ``use`` statement to make it available. In future releases it will +be moved to a standard module and will likely require a ``use`` statement to +make it available. + + +.. function:: proc iteratorIndex( ic: _iteratorClass) + +.. function:: proc iteratorIndex( t: _tuple) + +.. function:: proc iteratorIndexType( x) type + +.. function:: proc iteratorIndexTypeZip(xs ...) type + +.. function:: proc iteratorToArrayElementType(type t: _iteratorRecord) type + +.. function:: proc thunkToReturnType(type t: _thunkRecord) type + +.. function:: proc chpl_elemTypeForReducingIterables( x) type + +.. function:: proc chpl_buildStandInRTT(type domType: domain) type + +.. function:: proc chpl_buildStandInRTT(type arrType: []) type + +.. function:: proc chpl_buildStandInRTT(type irType: _iteratorRecord) type + +.. function:: proc chpl_buildStandInRTT(type nonRTtype) type + +.. function:: proc chpl_buildStandInRTT( domInst) type where isSubtype(domInst.type, unmanaged(DefaultRectangularDom)) + +.. function:: proc chpl_buildStandInRTT( domInst) type + +.. iterfunction:: iter chpl_trivialLeader() + +.. function:: proc chpl_computeIteratorShape( arg: []) + +.. function:: proc chpl_computeIteratorShape( arg: domain) + +.. function:: proc chpl_computeIteratorShape( arg: range(?)) + +.. function:: proc chpl_computeIteratorShape( arg: _iteratorRecord) + +.. function:: proc chpl_computeIteratorShape( arg) + +.. function:: proc chpl_iteratorHasShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorHasDomainShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorHasRangeShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorShapeStaticTypeOrNothing(type ir: _iteratorRecord) type + +.. function:: proc chpl_iteratorFromForExpr( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorFromForExpr( arg) param + +.. function:: proc chpl_iteratorFromForeachExpr( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorFromForeachExpr( arg) param + +.. function:: operator = (ref ic: _iteratorRecord, xs) + +.. function:: operator = (ref ic: _iteratorRecord, x: iteratorIndexType(ic)) + +.. function:: proc _getIterator(const ref x) + +.. function:: proc _getIterator(type t) + +.. function:: proc _getIteratorZip( x) + +.. function:: proc _getIteratorZip(type t) + +.. function:: proc _getIteratorZip( x: _tuple) + +.. function:: proc _getIteratorZip(type t: _tuple) + +.. function:: proc _freeIterator( ic: _iteratorClass) + +.. function:: proc _freeIterator( x: _tuple) + +.. function:: proc _toLeader(const ir: _iteratorRecord) where __primitive("has leader", ir) + +.. function:: proc _toLeader(const x) where !isSubtype(x.type, _iteratorRecord) && __primitive("has leader", x.these()) + +.. function:: proc _toLeaderZip( x) where !isTuple(x) && Reflection.canResolve("_toLeader", x) + +.. function:: proc _toLeaderZip( x: _tuple) where Reflection.canResolve("_toLeader", x(0)) + +.. function:: proc _toStandalone( iterator: _iteratorClass) + +.. function:: proc _toStandalone( ir: _iteratorRecord) + +.. function:: proc _toStandalone( x) + +.. function:: proc _toLeader( ir: _iteratorRecord, args ...) + +.. function:: proc _toLeader( x, args ...) + +.. function:: proc _toLeaderZip( x, args ...) + +.. function:: proc _toLeaderZip( x: _tuple, args ...) + +.. function:: proc _toStandalone( iterator: _iteratorClass, args ...) + +.. function:: proc _toStandalone( ir: _iteratorRecord, args ...) + +.. function:: proc _toStandalone( x, args ...) + +.. function:: proc chpl__canHaveFastFollowers( x) param + +.. function:: proc chpl__canLeadFastFollowers( x) param + +.. function:: proc chpl__staticFastFollowCheck( x) param + +.. function:: proc chpl__staticFastFollowCheck( x, lead) param + +.. function:: proc chpl__dynamicFastFollowCheck( x) + +.. function:: proc chpl__dynamicFastFollowCheck( x, lead) + +.. function:: proc _toFollower( iterator: _iteratorClass, leaderIndex) + +.. function:: proc _toFollower( ir: _iteratorRecord, leaderIndex) + +.. function:: proc _toFollower(const ref x, leaderIndex) + +.. function:: proc _toFollowerZip( x, leaderIndex) + +.. function:: proc _toFollowerZip( x: _tuple, leaderIndex) + +.. function:: proc _toFollowerZipInternal( x: _tuple, leaderIndex, param dim: int) + +.. function:: proc _toFastFollower( iterator: _iteratorClass, leaderIndex, fast: bool) + +.. function:: proc _toFastFollower( ir: _iteratorRecord, leaderIndex, fast: bool) + +.. function:: proc _toFastFollower( x, leaderIndex) + +.. function:: proc singleValIter( iterables: _tuple) param + +.. function:: proc singleRefIter( iterables: _tuple) param + diff --git a/docs/internal/_sources/modules/internal/ChapelLocale.rst.txt b/docs/internal/_sources/modules/internal/ChapelLocale.rst.txt new file mode 100644 index 000000000..6ab94f98d --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelLocale.rst.txt @@ -0,0 +1,351 @@ +.. default-domain:: chpl + +.. module:: ChapelLocale + :noindex: + +ChapelLocale +============ +**Usage** + +.. code-block:: chapel + + use ChapelLocale; + + +or + +.. code-block:: chapel + + import ChapelLocale; + + + + + +.. type:: type chpl_nodeID_t = int(32) + +.. type:: type chpl_sublocID_t = int(32) + +.. data:: const c_sublocid_none: chpl_sublocID_t + +.. data:: const c_sublocid_any: chpl_sublocID_t + +.. data:: const c_sublocid_all: chpl_sublocID_t + +.. function:: proc chpl_isActualSublocID( subloc: chpl_sublocID_t) + +.. enum:: enum localeKind { regular, any, nilLocale, dummy, default } + + + regular: Has a concrete BaseLocale instance + any: Placeholder to represent the notion of "anywhere" + nilLocale: The _instance is set to nil. Used during setup. Also, as a + sentinel value in locale tree operations + dummy: Used during initialization for `here` before it is properly setup + default: Used to store the default locale instance. Initially set to nil, + then "fixed" by LocalesArray to Locales[0] + + + .. enumconstant:: enum constant regular + + .. enumconstant:: enum constant any + + .. enumconstant:: enum constant nilLocale + + .. enumconstant:: enum constant dummy + + .. enumconstant:: enum constant default + +.. data:: const nilLocale = new locale(localeKind.nilLocale) + +.. data:: var defaultLocale = new locale(localeKind.default) + +.. data:: var dummyLocale = new locale(localeKind.dummy) + +.. record:: _locale + + .. attribute:: var _instance: unmanaged(BaseLocale?) + + .. method:: proc _value + + .. method:: proc init() + + .. method:: proc init( _instance: BaseLocale) + + .. method:: proc init(param kind) + + .. method:: proc init=( other: locale) + + .. method:: proc deinit() + + .. method:: proc localeid + + .. method:: proc chpl_id() + + .. method:: proc chpl_localeid() + + .. method:: proc chpl_name() + + .. method:: proc _getChildCount() + +.. function:: proc here + +.. method:: proc locale.hostname : string + + + Get the hostname of this locale. + + :returns: the hostname of the compute node associated with the locale + :rtype: string + + +.. method:: proc locale.name : string + + + Get the name of this locale. + + In general, this method returns the same string as :proc:`locale.hostname`; + however, it can differ when the program is executed in an oversubscribed manner. + + .. note:: + + The locale's `id` (from :proc:`locale.id`) will be appended to the `hostname` + when launching in an oversubscribed manner with `CHPL_COMM=gasnet` and one of + the following configurations: + + - `CHPL_COMM_SUBSTRATE=udp` & `GASNET_SPAWNFN=L` + - `CHPL_COMM_SUBSTRATE=smp` + + More information about these environment variables can be found here: :ref:`readme-multilocale` + + :returns: the name of this locale + :rtype: string + + +.. method:: proc locale.id : int + + + Get the unique integer identifier for this locale. + + :returns: index of this locale in the range ``0..numLocales-1`` + :rtype: int + + + +.. method:: proc locale.maxTaskPar : int + + + Get the maximum task concurrency that one can expect to + achieve on this locale. + + :returns: the maximum number of tasks that can run in parallel + on this locale + :rtype: int + + Note that the value is an estimate by the runtime tasking layer. + Typically it is the number of physical processor cores available + to the program. Executing a data-parallel construct with more + tasks this that is unlikely to improve performance. + + +.. method:: proc locale.numPUs( logical: bool = false, accessible: bool = true) : int + + .. warning:: + + 'locale.numPUs' is unstable + + + Get the number of processing units available on this locale. + + A *processing unit* or *PU* is an instance of the processor + architecture, basically the thing that executes instructions. + :proc:`locale.numPUs` tells how many of these are present on this + locale. It can count either physical PUs (commonly known as + *cores*) or hardware threads such as hyperthreads and the like. + It can also either take into account any OS limits on which PUs + the program has access to or do its best to ignore such limits. + By default it returns the number of accessible physical cores. + + :arg logical: Count logical PUs (hyperthreads and the like), + or physical ones (cores)? Defaults to `false`, + for cores. + :type logical: `bool` + :arg accessible: Count only PUs that can be reached, or all of + them? Defaults to `true`, for accessible PUs. + :type accessible: `bool` + :returns: number of PUs + :rtype: `int` + + Note that there are several things that can cause the OS to limit + the processor resources available to a Chapel program. On plain + Linux systems using the ``taskset(1)`` command will do it. On + Cray systems the ``CHPL_LAUNCHER_CORES_PER_LOCALE`` environment + variable may do it, indirectly via the system job launcher. + Also on Cray systems, using a system job launcher (``aprun`` or + ``slurm``) to run a Chapel program manually may do it, as can + running programs within Cray batch jobs that have been set up + with limited processor resources. + + +.. method:: proc locale.runningTasks() : int + + + Get the number of tasks running on this locale. + + This method is intended to guide task creation during a parallel + section. If the number of running tasks is greater than or equal + to the locale's maximum task parallelism (queried via :proc:`locale.maxTaskPar`), + then creating more tasks is unlikely to decrease walltime. + + :returns: the number of tasks that have begun executing, but have not yet finished + :rtype: `int` + + +.. method:: operator locale. = (ref l1: locale, const ref l2: locale) + +.. class:: BaseLocale : writeSerializable + + + ``locale`` is the abstract class from which the various + implementations inherit. It specifies the required interface + and implements part of it, but requires the rest to be provided + by the corresponding concrete classes. + + + .. method:: proc init() + + .. method:: proc init( parent: locale) + + .. attribute:: const parent: locale = nilLocale + + .. attribute:: var nPUsLogAcc: int + + .. attribute:: var nPUsLogAll: int + + .. attribute:: var nPUsPhysAcc: int + + .. attribute:: var nPUsPhysAll: int + + .. method:: proc numPUs( logical: bool = false, accessible: bool = true) + + .. attribute:: var maxTaskPar: int + + .. method:: proc id : int + + .. method:: proc localeid : chpl_localeID_t + + .. method:: proc hostname : string + + .. method:: override proc serialize( writer, ref serializer) throws + + .. method:: proc name + + .. attribute:: var runningTaskCounter: chpl__processorAtomicType(int) + + .. method:: proc runningTaskCntSet( val: int) + + .. method:: proc runningTaskCntAdd( val: int) + + .. method:: proc runningTaskCntSub( val: int) + + .. method:: proc runningTaskCnt() + + .. method:: proc chpl_id() : int + + .. method:: proc chpl_localeid() : chpl_localeID_t + + .. method:: proc chpl_name() : string + + .. method:: proc _getChildCount() : int + + .. method:: proc addChild( loc: locale) + + .. method:: proc _getChild( idx: int) : locale + + .. method:: proc gpus const ref + + .. method:: proc gpusImpl() const ref + + .. method:: proc isGpu() : bool + +.. class:: DummyLocale : BaseLocale + + This class is used during initialization and is returned when + 'here' is used before the locale hierarchy is initialized. This is due to + the fact that "here" is used for memory and task control in setting up the + architecture itself. DummyLocale provides system-default tasking and + memory management. + + + .. method:: proc init() + + .. method:: override proc chpl_id() : int + + .. method:: override proc chpl_localeid() : chpl_localeID_t + + .. method:: override proc chpl_name() : string + + .. method:: override proc _getChildCount() : int + + .. method:: override proc _getChild( idx: int) : locale + + .. method:: override proc addChild( loc: locale) + +.. function:: proc chpl_getSingletonLocaleArray( arg: locale) const ref + +.. class:: AbstractLocaleModel : BaseLocale + + .. attribute:: var chpl_singletonThisLocaleArray: [0..0] locale + + .. method:: proc init( parent_loc: locale) + + .. method:: proc init() + +.. data:: var rootLocale = nilLocale + +.. data:: config param replicateRootLocale = true + +.. data:: var origRootLocale = nilLocale + +.. class:: AbstractRootLocale : BaseLocale + + .. method:: proc init() + + .. method:: proc init( parent_loc: locale) + + .. method:: proc getDefaultLocaleSpace() const ref: chpl_emptyLocaleSpace.type + + .. method:: proc getDefaultLocaleArray() const ref: chpl_emptyLocales.type + + .. method:: proc localeIDtoLocale( id: chpl_localeID_t) : locale + + .. itermethod:: iter chpl_initOnLocales() + + .. itermethod:: iter chpl_initOnLocales(param tag: iterKind) where tag == iterKind.standalone + +.. function:: proc chpl_init_rootLocale() + +.. function:: proc chpl_rootLocaleInitPrivate( locIdx) + +.. function:: proc chpl_defaultLocaleInitPrivate() + +.. function:: proc chpl_singletonCurrentLocaleInitPrivateSublocs( arg: locale) + +.. function:: proc chpl_singletonCurrentLocaleInitPrivate( locIdx) + +.. function:: proc chpl_task_getRequestedSubloc() : chpl_sublocID_t + +.. function:: export proc chpl_getLocaleID(ref localeID: chpl_localeID_t) + +.. function:: proc here_id + +.. function:: proc chpl_localeID_to_locale( id: chpl_localeID_t) : locale + +.. function:: export proc chpl_taskRunningCntInc() + +.. function:: export proc chpl_taskRunningCntDec() + +.. function:: export proc chpl_taskRunningCntReset() + +.. function:: proc deinit() + diff --git a/docs/internal/_sources/modules/internal/ChapelLocks.rst.txt b/docs/internal/_sources/modules/internal/ChapelLocks.rst.txt new file mode 100644 index 000000000..7aea29359 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelLocks.rst.txt @@ -0,0 +1,41 @@ +.. default-domain:: chpl + +.. module:: ChapelLocks + :noindex: + +ChapelLocks +=========== +**Usage** + +.. code-block:: chapel + + use ChapelLocks; + + +or + +.. code-block:: chapel + + import ChapelLocks; + + +* Collection of mutexes/locks. + + +.. record:: chpl_LocalSpinlock + + + * Local processor atomic spinlock. Intended for situations with minimal + * contention or very short critical sections. + + + .. attribute:: var l: chpl__processorAtomicType(bool) + + .. method:: proc init() + + .. method:: proc init=( other: chpl_LocalSpinlock) + + .. method:: proc ref lock() + + .. method:: proc ref unlock() + diff --git a/docs/internal/_sources/modules/internal/ChapelNumLocales.rst.txt b/docs/internal/_sources/modules/internal/ChapelNumLocales.rst.txt new file mode 100644 index 000000000..514a0af6a --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelNumLocales.rst.txt @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: ChapelNumLocales + :noindex: + +ChapelNumLocales +================ +**Usage** + +.. code-block:: chapel + + use ChapelNumLocales; + + +or + +.. code-block:: chapel + + import ChapelNumLocales; + +.. function:: proc chpl_comm_default_num_locales() : int + +.. data:: config const numLocales = chpl_comm_default_num_locales() + diff --git a/docs/internal/_sources/modules/internal/ChapelPrivatization.rst.txt b/docs/internal/_sources/modules/internal/ChapelPrivatization.rst.txt new file mode 100644 index 000000000..b39be13dd --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelPrivatization.rst.txt @@ -0,0 +1,48 @@ +.. default-domain:: chpl + +.. module:: ChapelPrivatization + :noindex: + +ChapelPrivatization +=================== +**Usage** + +.. code-block:: chapel + + use ChapelPrivatization; + + +or + +.. code-block:: chapel + + import ChapelPrivatization; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: chpl_privateObject_t + + .. attribute:: var obj: c_ptr(void) + +.. data:: var chpl_privateObjects: c_ptr(chpl_privateObject_t) + +.. function:: proc chpl_getPrivatizedCopy(type objectType, objectPid: int) : objectType + diff --git a/docs/internal/_sources/modules/internal/ChapelRange.rst.txt b/docs/internal/_sources/modules/internal/ChapelRange.rst.txt new file mode 100644 index 000000000..3e9eba4ff --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelRange.rst.txt @@ -0,0 +1,1005 @@ +.. default-domain:: chpl + +.. module:: ChapelRange + :noindex: + +ChapelRange +=========== +**Usage** + +.. code-block:: chapel + + use ChapelRange; + + +or + +.. code-block:: chapel + + import ChapelRange; + +.. data:: config param debugChapelRange = false + +.. data:: config param useOptimizedRangeIterators = true + +.. data:: config param newSliceRule = true + + This flag, when set to `true`, used to switch to using the new slicing rule + and to turn off the deprecation warning for using the old rule. + Now the new rule is always enabled regardless of this flag's value. + When slicing with a range with a negative stride, the old rule + preserves the direction of the original range or domain/array dimension + whereas the new rule reverses such direction. + +.. data:: config param newRangeLiteralType = false + + Compile with ``-snewRangeLiteralType`` to switch to using the new rule + for determining the idxType of a range literal with param integral bounds + and to turn off the deprecation warning for using the old rule. + + The new rule defines such idxType to be the type produced by adding + the two bounds. I.e.,``(low..high).idxType`` is ``(low+high).type`` + when ``low`` and ``high`` are integral params. + +.. enum:: enum boundKind { both, low, high, neither } + + .. enumconstant:: enum constant both + + .. enumconstant:: enum constant low + + .. enumconstant:: enum constant high + + .. enumconstant:: enum constant neither + +.. enum:: enum strideKind { one, negOne, positive, negative, any } + + .. enumconstant:: enum constant one + + .. enumconstant:: enum constant negOne + + .. enumconstant:: enum constant positive + + .. enumconstant:: enum constant negative + + .. enumconstant:: enum constant any + +.. record:: _range + + .. attribute:: type idxType = int + + .. attribute:: param bounds: boundKind = boundKind.both + + .. attribute:: param strides: strideKind = strideKind.one + + .. attribute:: var _low: chpl__idxTypeToIntIdxType(idxType) + + .. attribute:: var _high: chpl__idxTypeToIntIdxType(idxType) + + .. attribute:: var _stride: if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType) + + .. attribute:: var _alignment: if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType) + +.. method:: proc range.strType type + + .. warning:: + + range.strType is unstable and may be removed or renamed + + Returns the type of the range's stride. + +.. method:: proc range.chpl__promotionType() type + +.. method:: proc range.chpl_integralIdxType type + + The ``idxType`` as represented by an integer type. When + ``idxType`` is an enum type, this evaluates to ``int``. + Otherwise, it evaluates to ``idxType``. + + This is no-doc'd because we currently are hoping it can + be more of an implementation detail than a user-facing + feature. + +.. method:: proc range.init(type idxType, low: idxType, high: idxType) + +.. method:: proc range.init( low: ?t) + +.. method:: proc range.init( high: ?t) + +.. method:: proc range.init() + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, param internal: bool) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, _alignment, _aligned, param normalizeAlignment = true) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, alignmentValue) + +.. method:: proc range.init=( other: range(?i, ?b, ?s)) + +.. method:: proc range.displayRepresentation( msg: string = "") : void + +.. function:: proc chpl_isValidRangeIdxType(type t) param + +.. function:: proc chpl_build_bounded_range(param low: integral, param high: integral) + +.. function:: proc chpl_build_bounded_range( low: int(8), high: int(8)) + +.. function:: proc chpl_build_bounded_range( low: int(16), high: int(16)) + +.. function:: proc chpl_build_bounded_range( low: int(32), high: int(32)) + +.. function:: proc chpl_build_bounded_range( low: int(64), high: int(64)) + +.. function:: proc chpl_build_bounded_range( low: uint(8), high: uint(8)) + +.. function:: proc chpl_build_bounded_range( low: uint(16), high: uint(16)) + +.. function:: proc chpl_build_bounded_range( low: uint(32), high: uint(32)) + +.. function:: proc chpl_build_bounded_range( low: uint(64), high: uint(64)) + +.. function:: proc chpl_build_bounded_range( low: enum, high: enum) + +.. function:: proc chpl_build_bounded_range( low: bool, high: bool) + +.. function:: proc chpl_build_bounded_range( low, high) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. function:: proc chpl__nudgeLowBound( low) + +.. function:: proc chpl__nudgeLowBound(param low) param + +.. function:: proc chpl__nudgeHighBound( high) + +.. function:: proc chpl__nudgeHighBound(param high) param + +.. function:: proc chpl_build_low_bounded_range( low: integral) + +.. function:: proc chpl_build_low_bounded_range( low: enum) + +.. function:: proc chpl_build_low_bounded_range( low: bool) + +.. function:: proc chpl_build_low_bounded_range( low) where !chpl_isValidRangeIdxType(low.type) + +.. function:: proc chpl_build_high_bounded_range( high: integral) + +.. function:: proc chpl_build_high_bounded_range( high: enum) + +.. function:: proc chpl_build_high_bounded_range( high: bool) + +.. function:: proc chpl_build_high_bounded_range( high) where !chpl_isValidRangeIdxType(high.type) + +.. function:: proc chpl_build_unbounded_range() + +.. method:: proc type range.createWithSingleElement( elm: idxType) + +.. function:: proc chpl_compute_low_param_loop_bound(param low: integral, param high: integral) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: integral, param high: integral) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low: enum, param high: low.type) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: enum, param high: low.type) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low: bool, param high: bool) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: bool, param high: bool) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low, param high) param where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. function:: proc chpl_compute_low_param_loop_bound( low, high) + +.. function:: proc chpl_compute_count_param_loop(param count: integral) param + +.. function:: proc chpl_compute_count_param_loop( count) + +.. function:: proc chpl_low_bound_count_for_param_loop(param high: integral, param count: integral) param + +.. function:: proc chpl_low_bound_count_for_param_loop( high, count) + +.. function:: proc chpl_high_bound_count_for_param_loop(param low: integral, param count: integral) param + +.. function:: proc chpl_high_bound_count_for_param_loop( low, count) + +.. function:: proc chpl_bounded_count_for_param_loop_low(param low: integral, param high: integral, param count: integral) param + +.. function:: proc chpl_bounded_count_for_param_loop_low( low, high, count) + +.. function:: proc chpl_bounded_count_for_param_loop_high(param low: integral, param high: integral, param count: integral) param + +.. function:: proc chpl_bounded_count_for_param_loop_high( low, high, count) + +.. method:: proc range.stride where !hasParamStride() + + Returns the range's stride. + +.. method:: proc range.stride param where hasParamStride() + +.. method:: proc range.alignment where !hasParamAlignment() + + Returns the range's alignment. + +.. method:: proc range.alignment param where hasParamAlignment() + +.. method:: proc range.isAligned() where !hasParamAligned() + + Returns ``true`` if the range's alignment is unambiguous, + ``false`` otherwise. + +.. method:: proc range.isAligned() param where hasParamAligned() + +.. method:: proc range.hasParamStride() param + +.. method:: proc range.hasParamAlignmentField() param + +.. method:: proc range.hasParamAlignment() param + +.. method:: proc range.hasParamAligned() param + +.. method:: proc range.hasParamStrideAltvalAld() param + +.. method:: proc type range.hasParamStrideAltvalAld() param + +.. method:: proc range.hasLowBound() param + + Returns ``true`` if this range's low bound is *not* -:math:`\infty`, + and ``false`` otherwise. + +.. method:: proc range.lowBound : idxType + + Returns the range's low bound. If the range does not have a low + bound (e.g., ``..10``), the behavior is undefined. See also + :proc:`range.hasLowBound`. + +.. method:: proc range.hasUnitStride() param + +.. method:: proc range.hasPosNegUnitStride() param + +.. method:: proc range.hasPositiveStride() param where strides.hasSign() + +.. method:: proc range.hasPositiveStride() where strides.isAny() + +.. method:: proc range.hasNegativeStride() param where strides.hasSign() + +.. method:: proc range.hasNegativeStride() where strides.isAny() + +.. method:: proc param strideKind.isOne() param + +.. method:: proc param strideKind.isNegOne() param + +.. method:: proc param strideKind.isPosNegOne() param + +.. method:: proc param strideKind.isPositive() param + +.. method:: proc param strideKind.isNegative() param + +.. method:: proc param strideKind.hasSign() param + +.. method:: proc param strideKind.isAny() param + +.. method:: proc param strideKind.defaultStride() param + +.. function:: proc chpl_strideProduct(param s1: strideKind, param s2: strideKind) param + +.. function:: proc chpl_strideProduct( r1: range(?), r2: range(?)) param + +.. function:: proc chpl_strideProduct( r1: range(?), param stride2: integral) param + +.. function:: proc chpl_strideUnion(param s1: strideKind, param s2: strideKind) param + +.. function:: proc chpl_strideUnion( args: _tuple) param + +.. function:: proc chpl_strideUnion( arg, args ...) param + +.. function:: proc chpl_strideUnion( arg) param: strideKind + +.. function:: proc chpl_strideUnionRC( args: _tuple) param + +.. function:: proc chpl_strideUnionRC( arg, args ...) param + +.. function:: proc chpl_strideUnionRC( arg) param + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind) param + +.. function:: proc chpl_assignStrideIsSafe( lhs: range(?), rhs: range(?)) param + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride) param where chpl_assignStrideIsSafe(lhs, rhs) || lhs == strideKind.positive && isUint(rhsStride) + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride) + +.. function:: proc chpl_assignStrideIsUnsafe(param lhs: strideKind, param rhs: strideKind) param + +.. method:: proc ref range.chpl_setFields( low, high, stride) + +.. method:: proc ref range.chpl_setFields( low, high) + +.. method:: proc range.low : idxType + + Returns the range's aligned low bound. If this bound is + undefined (e.g., ``..10 by -2``), the behavior is undefined. + + Example: + + .. code-block:: chapel + + var r = 1..10 by -2; + writeln(r.low); + + produces the output + + .. code-block:: printoutput + + 2 + + + +.. method:: proc range.alignedLowAsInt + +.. method:: proc range.chpl_alignedLowAsIntForIter + +.. method:: proc range.hasHighBound() param + + Returns ``true`` if this range's high bound is *not* :math:`\infty`, + and ``false`` otherwise. + +.. method:: proc range.highBound : idxType + + Returns the range's high bound. If the range does not have a high + bound (e.g., ``1..``), the behavior is undefined. See also + :proc:`range.hasHighBound`. + + +.. method:: proc range.high : idxType + + Returns the range's aligned high bound. If the aligned high bound is + undefined (e.g., ``1.. by 2``), the behavior is undefined. + + Example: + + .. code-block:: chapel + + var r = 1..10 by 2; + writeln(r.high); + + produces the output + + .. code-block:: printoutput + + 9 + + +.. method:: proc range.alignedHighAsInt + +.. method:: proc range.chpl_alignedHighAsIntForIter + +.. method:: proc range.chpl_isNaturallyAligned() where !hasPosNegUnitStride() && bounds != boundKind.neither + +.. method:: proc range.chpl_isNaturallyAligned() param where hasPosNegUnitStride() || bounds == boundKind.neither + +.. method:: proc range.isEmpty() + + Returns ``true`` if the sequence represented by the range is + empty and ``false`` otherwise. If the range is ambiguous, the + behavior is undefined. + + +.. method:: proc range.isEmpty() where isFiniteIdxType(idxType) && this.bounds != boundKind.both + + .. warning:: + + range.isEmpty() is unstable for unbounded ranged over an enum or bool + +.. method:: proc range.size : int + + Returns the number of values represented by this range as an integer. + + If the size exceeds ``max(int)``, this procedure will halt when + bounds checks are on and have undefined behavior when they are not. + + If the represented sequence is infinite or undefined, an error is + generated. + + +.. method:: proc range.sizeAs(type t: integral) : t + + Returns the number of elements in this range as the specified + integer type. + + If the size exceeds the maximal value of that type, this + procedure will halt when bounds checks are on and have undefined + behavior when they are not. + + If the represented sequence is infinite or undefined, an error is + generated. + + +.. method:: proc range.sizeAsHelp(type t: integral, al = this.alignedLowAsInt, ah = this.alignedHighAsInt) : t + +.. method:: proc range.chpl_sizeAsForIter(type t: integral) : t + +.. method:: proc range.hasFirst() + + Returns ``true`` if the range has a first index, ``false`` otherwise. + +.. method:: proc range.hasFirstForIter() + +.. method:: proc range.hasFirst() param where hasFirstLastAreParam(this) + +.. method:: proc range.hasFirstForIter() param where hasFirstLastAreParam(this) + +.. method:: proc range.first + + Returns the first value in the sequence the range represents. If + the range has no first index, the behavior is undefined. See + also :proc:`range.hasFirst`. + +.. method:: proc range.firstAsInt + +.. method:: proc range.chpl_firstAsIntForIter + +.. method:: proc range.hasLast() + + Returns ``true`` if the range has a last index, ``false`` otherwise. + +.. method:: proc range.hasLastForIter() + +.. method:: proc range.hasLast() param where hasFirstLastAreParam(this) + +.. method:: proc range.hasLastForIter() param where hasFirstLastAreParam(this) + +.. method:: proc range.last + + Returns the last value in the sequence the range represents. If + the range has no last index, the behavior is undefined. See also + :proc:`range.hasLast`. + + +.. method:: proc range.lastAsInt + +.. method:: proc range.chpl_lastAsIntForIter + +.. function:: proc chpl_idxTypeSizeChange(type t) param + +.. method:: proc range.contains( ind: idxType) + + Returns ``true`` if the range's represented sequence contains + ``ind``, ``false`` otherwise. It is an error to invoke ``contains`` + if the represented sequence is not defined. + +.. method:: proc range.contains( other: range(?)) + + Returns ``true`` if the range ``other`` is contained within this one, + ``false`` otherwise. + + +.. function:: operator ==( r1: range(?), r2: range(?)) param where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType)) + +.. function:: operator ==( r1: range(?), r2: range(?)) : bool where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType) + + .. warning:: + + == between unbounded and bounded ranges is unstable and its behavior may change in the future + +.. function:: operator ==( r1: range(?), r2: range(?)) : bool where r1.bounds == r2.bounds + +.. function:: operator !=( r1: range(?), r2: range(?)) + +.. function:: operator !=( r1: range(?), r2: range(?)) : bool where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType) + + .. warning:: + + != between unbounded and bounded ranges is unstable and its behavior may change in the future + +.. function:: operator !=( r1: range(?), r2: range(?)) param where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType)) + +.. function:: operator <( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator >( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator <=( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator >=( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: proc chpl_ident( r1: range(?), r2: range(?)) where r1.idxType == r2.idxType && r1.bounds == r2.bounds && r1.strides == r2.strides + +.. function:: proc chpl_ident( r1: range(?), r2: range(?)) param + +.. method:: proc range.boundingBox() + +.. method:: proc range.tryCast(type t: range(?)) where chpl_tryCastIsSafe(this, t) + + Casts a range to a new range type. Throws an IllegalArgumentError when + the original bounds and/or stride do not fit in the new idxType + or when the original stride is not legal for the new `strides` parameter. + + +.. method:: proc range.tryCast(type t: range(?)) throws where !chpl_tryCastIsSafe(this, t) + +.. function:: operator :( r: range(?), type t: range(?)) where chpl_castIsSafe(r, t) + + Cast a range to a new range type. The overload below throws when + the original bounds and/or stride do not fit in the new type or 'strides'. + TODO: should we allow 't' to be generic? + + +.. function:: operator :( r: range(?), type t: range(?)) throws where !chpl_castIsSafe(r, t) + +.. function:: proc chpl_throwingCast(type toType, from) throws + + cast 'from' to 'to', throwing an error if it does not fit + +.. function:: proc chpl_throwingCast(type toType, from) where chpl_idxCastIsSafe(toType, from.type) + +.. method:: proc range.chpl_checkStrides(type toType) : owned(IllegalArgumentError?) + + Returns 'nil' if 'this.stride' fits into 'toType.strides', + otherwise returns an IllegalArgumentError. + +.. function:: proc chpl_tryCastIsSafe( r: range(?), type t: range(?)) param + +.. function:: proc chpl_castIsSafe( r: range(?), type t: range(?)) param + +.. function:: proc chpl_idxCastIsSafe(type to, type from) param + +.. function:: proc chpl_idxCastThrows(type to, type from) param + +.. method:: proc range.chpl_boundsCheck( other: range(?e, ?b, ?s)) where b == boundKind.neither + +.. method:: proc range.chpl_boundsCheck( other: range(?e, ?b, ?s)) + +.. method:: proc range.chpl_boundsCheck( other: idxType) + +.. method:: proc ref range.alignLow() + + private + +.. method:: proc ref range.alignHigh() + + private + +.. method:: proc range.indexOrder( ind: idxType) + + .. warning:: + + range.indexOrder() is unstable and its behavior may change in the future + + + Returns an integer representing the zero-based ordinal value of + ``ind`` within the range's sequence of values if it is a member + of the sequence. Otherwise, returns -1. It is an error to + invoke ``indexOrder`` if the represented sequence is not defined + or the range does not have a first index. + + The following calls show the order of index 4 in each of the given ranges: + + .. code-block:: chapel + + (0..10).indexOrder(4) == 4 + (1..10).indexOrder(4) == 3 + (3..5).indexOrder(4) == 1 + (0..10 by 2).indexOrder(4) == 2 + (3..5 by 2).indexOrder(4) == -1 + + +.. method:: proc range.orderToIndex( ord: integral) : idxType + + .. warning:: + + range.orderToIndex() is unstable and its behavior may change in the future + + Returns the zero-based ``ord``-th element of this range's represented + sequence. It is an error to invoke ``orderToIndex`` if the range is not + defined, or if ``ord`` is negative or greater than the range's size. + The ``orderToIndex`` procedure is the reverse of ``indexOrder``. + + Example: + + .. code-block:: chapel + + 0..10.orderToIndex(4) == 4 + 1..10.orderToIndex(3) == 4 + 3..5.orderToIndex(1) == 4 + 0..10 by 2.orderToIndex(2) == 4 + + +.. method:: proc range.translate( offset: integral) + + .. warning:: + + range.translate() is unstable and its behavior may change in the future + + Returns a range with elements shifted from this range by ``offset``. + Formally, the range's low bound, high bound, and alignment values + will be shifted while the stride value will be preserved. If the + range's alignment is ambiguous, the behavior is undefined. + + Example: + + .. code-block:: chapel + + 0..9.translate(1) == 1..10 + 0..9.translate(2) == 2..11 + 0..9.translate(-1) == -1..8 + 0..9.translate(-2) == -2..7 + + +.. method:: proc range.translate( i) + +.. method:: proc range.translate( offset: integral) where chpl__singleValIdxType(idxType) + +.. method:: proc range.expand( offset: integral) where bounds != boundKind.both + +.. method:: proc range.expand( offset: integral) + + .. warning:: + + range.expand() is unstable and its behavior may change in the future + + Returns a range expanded by ``offset`` elements from each end. If + ``offset`` is negative, the range will be contracted. The stride + and alignment of the original range are preserved. + + Example: + + .. code-block:: chapel + + 0..9.expand(1) == -1..10 + 0..9.expand(2) == -2..11 + 0..9.expand(-1) == 1..8 + 0..9.expand(-2) == 2..7 + + + Formally, for a range represented by the tuple :math:`(l,h,s,a)`, + the result is :math:`(l-i,h+i,s,a)`. If the operand range is + ambiguously aligned, then so is the resulting range. + + +.. method:: proc range.expand( offset: integral) where chpl__singleValIdxType(idxType) + +.. method:: proc range.interior( offset: integral) where bounds != boundKind.both + +.. method:: proc range.interior( offset: integral) + + .. warning:: + + range.interior() is unstable and its behavior may change in the future + + Returns a range with ``offset`` elements from the interior portion of this + range. If ``offset`` is positive, take elements from the high end, and if + ``offset`` is negative, take elements from the low end. + + Example: + + .. code-block:: chapel + + 0..9.interior(1) == 9..9 + 0..9.interior(2) == 8..9 + 0..9.interior(-1) == 0..0 + 0..9.interior(-2) == 0..1 + + Formally, given a range denoted by the tuple :math:`(l,h,s,a)`, + + - if :math:`i < 0`, the result is :math:`(l,l-(i-1),s,a)`, + + - if :math:`i > 0`, the result is :math:`(h-(i-1),h,s,a)`, and + + - if :math:`i = 0`, the result is :math:`(l,h,s,a)`. + + This differs from the behavior of the count operator, in that + ``interior()`` preserves the alignment, and it uses the low and + high bounds rather than ``first`` and ``last`` to establish the + bounds of the resulting range. If the operand range is + ambiguously aligned, then so is the resulting range. + + +.. method:: proc range.exterior( offset: integral) where bounds != boundKind.both + +.. method:: proc range.exterior( offset: integral) + + .. warning:: + + range.exterior() is unstable and its behavior may change in the future + + Returns a range with ``offset`` elements from the exterior portion of this + range. If ``offset`` is positive, take elements from the high end, and if + ``offset`` is negative, take elements from the low end. + + Example: + + .. code-block:: chapel + + 0..9.exterior(1) = 10..10 + 0..9.exterior(2) = 10..11 + 0..9.exterior(-1) = -1..-1 + 0..9.exterior(-2) = -2..-1 + + Formally, given a range denoted by the tuple :math:`(l,h,s,a)`, + + - if :math:`i < 0`, the result is :math:`(l+i,l-1,s,a)`, + + - if :math:`i > 0`, the result is :math:`(h+1,h+i,s,a)`, and + + - if :math:`i = 0`, the result is :math:`(l,h,s,a)`. + + If the operand range is ambiguously aligned, then so is the resulting + range. + + +.. method:: proc range.exterior( offset: integral) where chpl__singleValIdxType(idxType) + +.. function:: operator = (ref r1: range(?), r2: range(?)) + +.. function:: operator +( r1: range(?), r2: range(?)) + +.. function:: operator -( r1: range(?), r2: range(?)) + +.. function:: operator +( r: range(?e, ?b, ?s), i: integral) + + .. warning:: + + '+' on ranges is unstable and may change in the future + +.. function:: operator +=(ref r: range(?e, ?b, ?s), offset: integral) + + .. warning:: + + '+=' on ranges is unstable and may change in the future + +.. function:: operator +( i: integral, r: range(?e, ?b, ?s)) + + .. warning:: + + '+' on ranges is unstable and may change in the future + +.. function:: operator -( r: range(?e, ?b, ?s), i: integral) + + .. warning:: + + '-' on ranges is unstable and may change in the future + +.. function:: operator -=(ref r: range(?e, ?b, ?s), offset: integral) + + .. warning:: + + '-=' on ranges is unstable and may change in the future + +.. function:: proc chpl_check_step_integral( step) + +.. function:: proc chpl_need_to_check_step( step, type strType) param + +.. function:: proc chpl_range_check_stride( step, type idxType) + +.. function:: proc chpl_range_check_stride(param step, type idxType) + +.. function:: proc chpl_by_help( r: range(?i, ?b, ?s), step, param newStrides) + +.. function:: operator by( r: range(?), step) + +.. function:: operator by( r: range(?), param step) + +.. function:: operator by( r, step) + +.. function:: operator align( r: range(?i, ?b, ?s), algn: i) + +.. function:: operator align( r: range(?i, ?b, ?s), algn) + +.. function:: operator align( r, algn) + +.. method:: proc range.offset(in offset: integral) + + .. warning:: + + range.offset() is unstable and its behavior may change in the future + + Returns a range whose alignment is this range's first index plus ``offset``. + If the range has no first index, a runtime error is generated. + + +.. method:: proc const range.this( other: range(?)) + +.. function:: proc chpl_count_help( r: range(?), i) where r.bounds == boundKind.neither + +.. function:: proc chpl_count_help( r, count: integral) + +.. function:: operator #( r: range(?), count: bool) + +.. function:: operator #( r: range(?), count: integral) + +.. function:: operator #( r: range(?i), count) + +.. function:: operator #( r, count) + +.. function:: proc chpl_checkIfRangeIterWillOverflow(type idxType, low, high, stride, first = low, last = high, shouldHalt = true) + +.. method:: proc range.checkIfIterWillOverflow( shouldHalt = true) + +.. iterfunction:: iter chpl_direct_range_iter(param low: integral, param high: integral) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(8), high: int(8)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(16), high: int(16)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(32), high: int(32)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(64), high: int(64)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(8), high: uint(8)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(16), high: uint(16)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(32), high: uint(32)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(64), high: uint(64)) + +.. iterfunction:: iter chpl_direct_range_iter( low: enum, high: enum) + +.. iterfunction:: iter chpl_direct_range_iter( low: bool, high: bool) + +.. iterfunction:: iter chpl_direct_range_iter( low, high) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. iterfunction:: iter chpl_direct_strided_range_iter(param low: integral, param high: integral, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: enum, high: enum, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: bool, high: bool, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter(param low: integral, param high: integral, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: enum, high: enum, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: bool, high: bool, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low, high, stride) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: int(?w), count) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: uint(?w), count) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: enum, count: integral) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: bool, count: integral) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low, count) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(count.type)) + +.. iterfunction:: iter chpl_direct_counted_range_iter_helper( low, count) + +.. iterfunction:: iter chpl_direct_pos_stride_range_iter( low: ?t, high, stride) + +.. iterfunction:: iter chpl_direct_param_stride_range_iter( low: ?t, high, param stride) + +.. itermethod:: iter range.these() : nothing where !hasLowBoundForIter(this) && !hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && !hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where !hasLowBoundForIter(this) && hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && hasHighBoundForIter(this) && !hasPosNegUnitStride() + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && hasHighBoundForIter(this) && hasPosNegUnitStride() + +.. itermethod:: iter range.generalIterator() + +.. itermethod:: iter range.these(param tag: iterKind) where tag == iterKind.standalone && !localeModelPartitionsIterationOnSublocales + +.. itermethod:: iter range.these(param tag: iterKind) where tag == iterKind.leader + +.. itermethod:: iter range.these(param tag: iterKind, followThis) where tag == iterKind.follower + +.. function:: operator :( x: range(?), type t: string) + +.. method:: proc range.chpl__unTranslate( i) + +.. function:: proc chpl__mod( dividend: integral, modulus: integral) where numBits(dividend.type) >= numBits(modulus.type) + +.. function:: proc chpl__mod( dividend: integral, modulus: integral) where numBits(dividend.type) < numBits(modulus.type) && isInt(modulus) + +.. function:: proc chpl__diffMod( minuend: integral, subtrahend: integral, modulus: integral) : minuend.type where minuend.type == subtrahend.type + +.. function:: proc chpl__diffMod( minuend: integral, subtrahend: integral, modulus: integral) + +.. function:: proc chpl__add( a: ?t, b: t, type resultType) + +.. function:: proc chpl__addRangeStrides( start, stride, count) : start.type + +.. function:: proc chpl__extendedEuclidHelper( u, v) + +.. function:: proc chpl__extendedEuclid( u: int(32), v: int(32)) + +.. function:: proc chpl__extendedEuclid( u: int(64), v: int(64)) + +.. function:: proc chpl__idxTypeToIntIdxType(type idxType) type + +.. method:: proc range.chpl_intToIdx( i) + +.. function:: proc chpl__intToIdx(type idxType: integral, i: integral) + +.. function:: proc chpl__intToIdx(type idxType: integral, param i: integral) param + +.. function:: proc chpl__intToIdx(type idxType: enum, i: integral) + +.. function:: proc chpl__intToIdx(type idxType: enum, param i: integral) param + +.. function:: proc chpl__intToIdx(type idxType, i: integral) where isBoolType(idxType) + +.. function:: proc chpl__intToIdx(type idxType, param i: integral) param where isBoolType(idxType) + +.. function:: proc chpl__intToIdx(type idxType, i: nothing) + +.. function:: proc chpl__idxToInt( i: integral) + +.. function:: proc chpl__idxToInt(param i: integral) param + +.. function:: proc chpl__idxToInt( i: enum) + +.. function:: proc chpl__idxToInt(param i: enum) param + +.. function:: proc chpl__idxToInt( i: bool) + +.. function:: proc chpl__idxToInt(param i: bool) param + +.. function:: proc chpl__singleValIdxType(type t) param + diff --git a/docs/internal/_sources/modules/internal/ChapelReduce.rst.txt b/docs/internal/_sources/modules/internal/ChapelReduce.rst.txt new file mode 100644 index 000000000..c170a0ba4 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelReduce.rst.txt @@ -0,0 +1,272 @@ +.. default-domain:: chpl + +.. module:: ChapelReduce + :noindex: + +ChapelReduce +============ +**Usage** + +.. code-block:: chapel + + use ChapelReduce; + + +or + +.. code-block:: chapel + + import ChapelReduce; + +.. function:: proc chpl__scanStateResTypesMatch( op) param + +.. function:: proc chpl__scanIteratorZip( op, data) + + .. warning:: + + scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204 + +.. function:: proc chpl__scanIterator( op, data) + + .. warning:: + + scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204 + +.. function:: proc chpl__accumgen( op, d) + +.. function:: proc chpl__reduceCombine( globalOp, localOp) + +.. function:: proc chpl__cleanupLocalOp( globalOp, localOp) + +.. function:: proc chpl_sumTypeIsSame(type eltType) param + +.. function:: proc chpl__sumType(type eltType) type + +.. class:: ReduceScanOp + + .. attribute:: var l: chpl_LocalSpinlock + +.. class:: SumReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value: chpl__sumType(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: ProductReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _prod_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: MaxReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = min(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: MinReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = max(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: minmax : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = (max(eltType), min(eltType)) + + .. method:: proc identity + + .. method:: proc accumulateOntoState(ref state, x: eltType) + + .. method:: proc accumulateOntoState(ref state, other: 2*(eltType)) + + .. method:: proc accumulate( x: eltType) + + .. method:: proc accumulate( state: 2*(eltType)) + + .. method:: proc combine( other: minmax(eltType)) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: LogicalAndReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _land_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: LogicalOrReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _lor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseAndReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _band_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseOrReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _bor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseXorReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _bxor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. function:: proc _maxloc_id(type eltType) + +.. function:: proc _minloc_id(type eltType) + +.. class:: maxloc : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _maxloc_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: minloc : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _minloc_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + diff --git a/docs/internal/_sources/modules/internal/ChapelRemoteVars.rst.txt b/docs/internal/_sources/modules/internal/ChapelRemoteVars.rst.txt new file mode 100644 index 000000000..7141ffeb7 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelRemoteVars.rst.txt @@ -0,0 +1,79 @@ +.. default-domain:: chpl + +.. module:: ChapelRemoteVars + :noindex: + +ChapelRemoteVars +================ +**Usage** + +.. code-block:: chapel + + use ChapelRemoteVars; + + +or + +.. code-block:: chapel + + import ChapelRemoteVars; + + +* Copyright 2024 Hewlett Packard Enterprise Development LP +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. class:: _remoteVarContainer + + .. attribute:: var containedValue + +.. record:: _remoteVarWrapper + + .. attribute:: type eltType + + .. attribute:: var tmp: owned(_remoteVarContainer(eltType)) + + .. method:: proc init(in tmp: owned(_remoteVarContainer(?eltType))) + + .. method:: proc ref get() ref + +.. function:: proc __defaultValueForType(type inType) + +.. function:: proc chpl__buildRemoteWrapper(const ref loc) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, type inType) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, in tr: _thunkRecord) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, type inType, in tr: _thunkRecord) + + .. warning:: + + remote variables are unstable + diff --git a/docs/internal/_sources/modules/internal/ChapelSerializedBroadcast.rst.txt b/docs/internal/_sources/modules/internal/ChapelSerializedBroadcast.rst.txt new file mode 100644 index 000000000..4a52d16f7 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelSerializedBroadcast.rst.txt @@ -0,0 +1,28 @@ +.. default-domain:: chpl + +.. module:: ChapelSerializedBroadcast + :noindex: + +ChapelSerializedBroadcast +========================= +**Usage** + +.. code-block:: chapel + + use ChapelSerializedBroadcast; + + +or + +.. code-block:: chapel + + import ChapelSerializedBroadcast; + +.. data:: config param chpl__enableSerializedGlobals = true + +.. function:: proc chpl_get_global_serialize_table( idx: int) : c_ptr(void) + +.. function:: proc chpl__broadcastGlobal(ref localeZeroGlobal: ?T, id: int) where chpl__enableSerializedGlobals + +.. function:: proc chpl__destroyBroadcastedGlobal(ref localeZeroGlobal, id: int) where chpl__enableSerializedGlobals + diff --git a/docs/internal/_sources/modules/internal/ChapelShortArrayTransfer.rst.txt b/docs/internal/_sources/modules/internal/ChapelShortArrayTransfer.rst.txt new file mode 100644 index 000000000..7a80918e8 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelShortArrayTransfer.rst.txt @@ -0,0 +1,30 @@ +.. default-domain:: chpl + +.. module:: ChapelShortArrayTransfer + :noindex: + +ChapelShortArrayTransfer +======================== +**Usage** + +.. code-block:: chapel + + use ChapelShortArrayTransfer; + + +or + +.. code-block:: chapel + + import ChapelShortArrayTransfer; + +.. data:: config param debugShortArrayTransfer = false + +.. data:: config param disableShortArrayTransfer = false + +.. data:: config param shortArrayTransferThreshold = 60 + +.. function:: proc chpl__staticCheckShortArrayTransfer( a, b) param + +.. function:: proc chpl__dynamicCheckShortArrayTransfer( a, b) + diff --git a/docs/internal/_sources/modules/internal/ChapelStandard.rst.txt b/docs/internal/_sources/modules/internal/ChapelStandard.rst.txt new file mode 100644 index 000000000..8c7b16c46 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelStandard.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelStandard + :noindex: + +ChapelStandard +============== +**Usage** + +.. code-block:: chapel + + use ChapelStandard; + + +or + +.. code-block:: chapel + + import ChapelStandard; + diff --git a/docs/internal/_sources/modules/internal/ChapelStaticVars.rst.txt b/docs/internal/_sources/modules/internal/ChapelStaticVars.rst.txt new file mode 100644 index 000000000..5e6911e78 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelStaticVars.rst.txt @@ -0,0 +1,83 @@ +.. default-domain:: chpl + +.. module:: ChapelStaticVars + :noindex: + +ChapelStaticVars +================ +**Usage** + +.. code-block:: chapel + + use ChapelStaticVars; + + +or + +.. code-block:: chapel + + import ChapelStaticVars; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. enum:: enum sharingKind { computeOrRetrieve, computePerLocale } + + .. enumconstant:: enum constant computeOrRetrieve + + * + Default distribution mode. The value is computed on whichever + locale first calls the function; other locales remotely access + the value once it's computed. + + + .. enumconstant:: enum constant computePerLocale + + * + The variable is computed per-locale; the first call to the function + on each locale causes it to compute the static variable. + + +.. class:: _staticWrapperContainer + + .. attribute:: var value + +.. record:: _staticWrapper + + .. attribute:: type valueType + + .. attribute:: var container: owned(_staticWrapperContainer(valueType)?) + + .. attribute:: var inited: atomic(int) + + .. method:: proc init(type valueType) + + .. method:: proc ref setValue(in v: valueType) + + .. method:: proc ref getValue() ref: valueType + + .. method:: proc ref callerShouldComputeValue() + + .. method:: proc ref reset() + +.. function:: proc chpl__functionStaticVariableWrapperType(type valueType) type + +.. function:: proc chpl__executeStaticWrapperCleanupEverywhere( fn: proc (): void ) + diff --git a/docs/internal/_sources/modules/internal/ChapelSyncvar.rst.txt b/docs/internal/_sources/modules/internal/ChapelSyncvar.rst.txt new file mode 100644 index 000000000..2f63e29d3 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelSyncvar.rst.txt @@ -0,0 +1,485 @@ +.. default-domain:: chpl + +.. module:: ChapelSyncvar + :noindex: + +ChapelSyncvar +============= +**Usage** + +.. code-block:: chapel + + use ChapelSyncvar; + + +or + +.. code-block:: chapel + + import ChapelSyncvar; + + + +.. data:: config param useNativeSyncVar = true + +.. function:: proc chpl__readXX( x) + +.. function:: proc chpl__readXX( x) where isAtomicType(x.type) + +.. record:: _syncvar : writeSerializable, readDeserializable + + *********************************** | ************************************* + * * + * The record wrapper to implement sync * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var wrapped: getSyncClassType(valType) + + .. attribute:: var isOwned: bool = true + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc init(const ref other: _syncvar) + + .. method:: proc init=(const ref other: _syncvar(?)) + + .. warning:: + + Initializing a type-inferred variable from a 'sync' is deprecated; apply a 'read??()' method to the right-hand side + + .. method:: proc init=(in other: this.type.valType) + + .. method:: proc deinit() + + .. method:: proc deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + +.. method:: proc _syncvar.readFE() + + + Read a full ``sync`` variable, leaving it empty. + + 1) Block until the ``sync`` variable is full. + 2) Read the value of the ``sync`` variable and set the variable to empty. + + :returns: The value of the ``sync`` variable. + + +.. method:: proc _syncvar.readFF() + + Read a full ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is full. + 2) Read the value of the ``sync`` variable and leave the variable full. + + :returns: The value of the ``sync`` variable. + + +.. method:: proc _syncvar.readXX() + + .. warning:: + + 'readXX' is unstable + + Read a ``sync`` variable regardless of its state, leaving its state unchanged. + + 1) Without blocking, read the value of the ``sync`` variable + 2) Leaving the state unchanged, return a value based on the current state: + + * full: return a copy of the stored value. + * empty: return either a new default-initialized value of the stored type + or, the last value stored (implementation dependent). + + :returns: The value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeEF(in val: valType) + + Write into an empty ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is empty. + 2) Write the value of the ``sync`` variable and leave the variable full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeFF(in val: valType) + + .. warning:: + + 'writeFF' is unstable + + Write into a full ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is full. + 2) Write the value of the ``sync`` variable and leave the variable full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeXF(in val: valType) + + .. warning:: + + 'writeXF' is unstable + + Write into a ``sync`` variable regardless of its state, leaving it full. + + 1) Do not block. + 2) Write the value of the ``sync`` variable, leave it's state full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.reset() + + .. warning:: + + 'reset' is unstable + + + Resets the value of this ``sync`` variable to the default value of + its type. This method is non-blocking and the state of the ``sync`` + variable is set to empty when this method completes. + + +.. method:: proc _syncvar.isFull + + .. warning:: + + 'isFull' is unstable + + + Determine if the ``sync`` variable is full without blocking. + Does not alter the state of the ``sync`` variable. + + :returns: ``true`` if the state of the ``sync`` variable is full, ``false`` if it's empty. + + +.. function:: operator = (ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + Direct assignment to 'sync' variables is deprecated; apply a 'write??()' method to modify one + +.. function:: operator :( from, type t: _syncvar) where from.type == t.valType + +.. function:: operator :( from: _syncvar, type toType: _syncvar) + + .. warning:: + + Casting sync variables is deprecated + +.. function:: operator +=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator -=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator *=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator /=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator %=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator **=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator &=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator |=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator ^=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator >>=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator <<=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _syncvar(?), ref rhs: _syncvar(?)) + +.. function:: proc chpl__compilerGeneratedCopySyncSingle(ref sv: _syncvar(?)) + +.. function:: proc chpl__initCopy(ref sv: _syncvar(?t), definedConst: bool) + + .. warning:: + + Initializing a type-inferred variable from a 'sync' is deprecated; apply a '.read??()' method to the right-hand side + +.. function:: proc chpl__autoCopy(const ref rhs: _syncvar, definedConst: bool) + +.. function:: proc chpl__maybeAutoDestroyed( x: _syncvar(?t)) param + +.. function:: proc chpl__autoDestroy( x: _syncvar(?)) + +.. function:: proc chpl__readXX(const ref x: _syncvar(?)) + +.. function:: operator <=>(ref lhs: _syncvar, ref rhs) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. function:: operator <=>(ref lhs, ref rhs: _syncvar) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. function:: operator <=>(ref lhs: _syncvar, ref rhs: _syncvar) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. class:: _synccls + + *********************************** | ************************************* + * * + * Use of a class instance establishes the required identity property. * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var value: valType + + .. attribute:: var syncAux: chpl_sync_aux_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFE() + + .. method:: proc const readFF() + + .. method:: proc const readXX() + + .. method:: proc writeEF(in val: valType) + + .. method:: proc writeFF(in val: valType) + + .. method:: proc writeXF(in val: valType) + + .. method:: proc reset() + + .. method:: proc isFull + +.. class:: _qthreads_synccls + + .. attribute:: type valType + + .. attribute:: var alignedValue: aligned_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFE() + + .. method:: proc readFF() + + .. method:: proc readXX() + + .. method:: proc writeEF( val: valType) + + .. method:: proc writeFF( val: valType) + + .. method:: proc writeXF( val: valType) + + .. method:: proc reset() + + .. method:: proc isFull + +.. record:: _singlevar : writeSerializable, readDeserializable + + *********************************** | ************************************* + * * + * The record wrapper to implement single * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var wrapped: unmanaged(_singlecls(valType)) + + .. attribute:: var isOwned: bool = true + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc init(const ref other: _singlevar) + + .. method:: proc init=(const ref other: _singlevar) + + .. warning:: + + Initializing a type-inferred variable from a 'single' is deprecated; apply a 'read??()' method to the right-hand side + + .. method:: proc init=(in other: this.type.valType) + + .. method:: proc deinit() + + .. method:: proc deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + +.. method:: proc _singlevar.readFF() + + Read a full ``single`` variable, leaving it full. + + 1) Block until the ``single`` variable is full. + 2) Read the value of the ``single`` variable and leave the variable full + + :returns: The value of the ``single`` variable. + + +.. method:: proc _singlevar.readXX() + + Read a ``single`` variable regardless of its state, leaving its state unchanged. + + 1) Without blocking, read the value of the ``single`` variable. + 2) Leaving the state unchanged, return a value based on the current state: + + * full: return a copy of the stored value. + * empty: return either a new default-initialized value of the stored type + or, the last value stored (implementation dependent). + + :returns: The value of the ``single`` variable. + + +.. method:: proc _singlevar.writeEF(in val: valType) + + Write into an empty ``single`` variable, leaving it full. + + 1) Block until the ``single`` variable is empty. + 2) Write the value of the ``single`` variable and leave the variable full. + + :arg val: New value of the single variable. + + +.. method:: proc _singlevar.isFull + + + Determine if the ``single`` variable is full without blocking. + Does not alter the state of the ``single`` variable. + + :returns: ``true`` if the state of the ``single`` variable is full, ``false`` if it's empty. + + +.. function:: operator = (ref lhs: _singlevar(?t), rhs: t) + + .. warning:: + + Direct assignment to 'single' variables is deprecated; apply '.writeEF()' to modify one + +.. function:: operator :( from, type t: _singlevar) where from.type == t.valType + +.. function:: operator :( from: _singlevar, type toType: _singlevar) + + .. warning:: + + Casting single variables is deprecated + +.. function:: proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _singlevar(?), ref rhs: _singlevar(?)) + +.. function:: proc chpl__compilerGeneratedCopySyncSingle(ref sv: _singlevar(?)) + +.. function:: proc chpl__initCopy(ref sv: _singlevar(?t), definedConst: bool) + + .. warning:: + + Initializing a type-inferred variable from a 'single' is deprecated; apply '.readFF()' to the right-hand side + +.. function:: proc chpl__autoCopy(const ref rhs: _singlevar, definedConst: bool) + +.. function:: proc chpl__maybeAutoDestroyed( x: _singlevar(?t)) param + +.. function:: proc chpl__autoDestroy( x: _singlevar(?)) + +.. function:: proc chpl__readXX(const ref x: _singlevar(?)) + +.. class:: _singlecls + + *********************************** | ************************************* + * * + * Use of a class instance establishes the required identity property. * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var value: valType + + .. attribute:: var singleAux: chpl_single_aux_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFF() + + .. method:: proc readXX() + + .. method:: proc writeEF(in val: valType) + + .. method:: proc isFull + diff --git a/docs/internal/_sources/modules/internal/ChapelTaskData.rst.txt b/docs/internal/_sources/modules/internal/ChapelTaskData.rst.txt new file mode 100644 index 000000000..47bbe089f --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelTaskData.rst.txt @@ -0,0 +1,48 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskData + :noindex: + +ChapelTaskData +============== +**Usage** + +.. code-block:: chapel + + use ChapelTaskData; + + +or + +.. code-block:: chapel + + import ChapelTaskData; + +.. function:: proc chpl_task_data_setDynamicEndCount( tls: c_ptr(chpl_task_infoChapel_t), end: _remoteEndCountType) + +.. function:: proc chpl_task_data_getDynamicEndCount( tls: c_ptr(chpl_task_infoChapel_t)) + +.. function:: proc chpl_task_data_setSerial( tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void + +.. function:: proc chpl_task_data_getSerial( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_data_setNextCoStmtSerial( tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void + +.. function:: proc chpl_task_data_getNextCoStmtSerial( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_data_setCommDiagsTemporarilyDisabled( tls: c_ptr(chpl_task_infoChapel_t), disabled: bool) : bool + +.. function:: proc chpl_task_data_getCommDiagsTemporarilyDisabled( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_setDynamicEndCount( end: _remoteEndCountType) + +.. function:: proc chpl_task_getDynamicEndCount() : _remoteEndCountType + +.. function:: export proc chpl_task_setSerial( makeSerial: bool) : void + +.. function:: export proc chpl_task_getSerial() : bool + +.. function:: export proc chpl_task_setCommDiagsTemporarilyDisabled( disabled: bool) : bool + +.. function:: export proc chpl_task_getCommDiagsTemporarilyDisabled() : bool + diff --git a/docs/internal/_sources/modules/internal/ChapelTaskDataHelp.rst.txt b/docs/internal/_sources/modules/internal/ChapelTaskDataHelp.rst.txt new file mode 100644 index 000000000..13986c3f7 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelTaskDataHelp.rst.txt @@ -0,0 +1,32 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskDataHelp + :noindex: + +ChapelTaskDataHelp +================== +**Usage** + +.. code-block:: chapel + + use ChapelTaskDataHelp; + + +or + +.. code-block:: chapel + + import ChapelTaskDataHelp; + +.. type:: type chpl_task_infoChapel_t + +.. function:: proc chpl_task_getInfoChapel() : c_ptr(chpl_task_infoChapel_t) + +.. function:: proc chpl_task_getInfoChapelInBundle( args: chpl_task_bundle_p) : c_ptr(chpl_task_infoChapel_t) + +.. function:: proc chpl_task_data_setup( args: chpl_task_bundle_p, infoChapel: c_ptr(chpl_task_infoChapel_t)) + +.. function:: proc chpl_save_task_error( e: _EndCountBase, err: unmanaged(Error?)) + +.. function:: proc chpl_save_task_error_owned( e: _EndCountBase, in err: owned(Error?)) + diff --git a/docs/internal/_sources/modules/internal/ChapelTaskID.rst.txt b/docs/internal/_sources/modules/internal/ChapelTaskID.rst.txt new file mode 100644 index 000000000..548e4beed --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelTaskID.rst.txt @@ -0,0 +1,30 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskID + :noindex: + +ChapelTaskID +============ +**Usage** + +.. code-block:: chapel + + use ChapelTaskID; + + +or + +.. code-block:: chapel + + import ChapelTaskID; + +.. function:: operator = (ref a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator ==( a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator !=( a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator :( x: chpl_taskID_t, type t: int(64)) + +.. function:: operator :( x: chpl_taskID_t, type t: uint(64)) + diff --git a/docs/internal/_sources/modules/internal/ChapelThreads.rst.txt b/docs/internal/_sources/modules/internal/ChapelThreads.rst.txt new file mode 100644 index 000000000..66e9f1593 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelThreads.rst.txt @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: ChapelThreads + :noindex: + +ChapelThreads +============= +**Usage** + +.. code-block:: chapel + + use ChapelThreads; + + +or + +.. code-block:: chapel + + import ChapelThreads; + +.. function:: proc chpl_task_getenvNumThreadsPerLocale() : int(32) + +.. data:: const numThreadsPerLocale: int = chpl_task_getenvNumThreadsPerLocale() + diff --git a/docs/internal/_sources/modules/internal/ChapelTuple.rst.txt b/docs/internal/_sources/modules/internal/ChapelTuple.rst.txt new file mode 100644 index 000000000..f3642d44c --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelTuple.rst.txt @@ -0,0 +1,214 @@ +.. default-domain:: chpl + +.. module:: ChapelTuple + :noindex: + +ChapelTuple +=========== +**Usage** + +.. code-block:: chapel + + use ChapelTuple; + + +or + +.. code-block:: chapel + + import ChapelTuple; + + + +.. record:: _tuple + + .. attribute:: param size: int + +.. function:: proc chpl__init_tuple(param size: int) + +.. function:: proc _build_tuple(type t ...) type + +.. function:: proc _build_tuple(x ...) + +.. function:: proc _build_tuple_noref(type t ...) type + +.. function:: proc _build_tuple_always_allow_ref(x ...) + +.. function:: proc chpl__unref(type t) type + +.. function:: operator *(param p: int, type t) type + +.. function:: operator *(param p: uint, type t) type + +.. function:: operator *(param p: bool, type t) type + +.. function:: operator *( p: bool, type t) type + +.. function:: proc _build_star_tuple_noref(param p: int, type t) type + +.. function:: operator *(type t, param p: int) + +.. function:: operator *( p: integral, type t) type + +.. function:: proc chpl__tuplify( x) + +.. function:: proc _check_tuple_var_decl(const ref x: _tuple, param p) param + +.. function:: proc _check_tuple_var_decl(const ref x, param p) param + +.. function:: operator = (ref x: _tuple, y: _tuple) where x.size == y.size + +.. method:: proc _tuple.this( i: integral) ref + +.. method:: proc _tuple.this( i: bool) ref + +.. data:: config param CHPL_WARN_TUPLE_ITERATION = "unset" + +.. itermethod:: iter ref _tuple.these() ref + +.. itermethod:: iter _tuple.these(param tag: iterKind) where tag == iterKind.leader + +.. itermethod:: iter ref _tuple.these(param tag: iterKind, followThis: _tuple) ref where tag == iterKind.follower + +.. method:: proc _tuple.indices + +.. function:: operator :( x: (?, ?), type t: complex(64)) + + + Cast from a generic two-tuple to a ``complex(64)`` + + +.. function:: operator :( x: (?, ?), type t: complex(128)) + + + Cast from a generic two-tuple to a ``complex(128)`` + + +.. function:: operator :( x: _tuple, type t: _tuple) + +.. function:: proc chpl__tupleRest( t: _tuple) + +.. function:: operator +( a: _tuple) + +.. function:: operator -( a: _tuple) + +.. function:: operator ~( a: _tuple) + +.. function:: operator !( a: _tuple) + +.. function:: proc max(type t) : t where isTupleType(t) + + + Returns a tuple of type t with each component set to ``max`` + of the type in the corresponding component of the argument. + + +.. function:: proc min(type t) : t where isTupleType(t) + + + Returns a tuple of type t with each component set to ``min`` + of the type in the corresponding component of the argument. + + +.. function:: proc chpl_TwoHomogTuples( t1, t2) param + +.. function:: operator +( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator +( a: _tuple, b: _tuple) + +.. function:: operator -( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator -( a: _tuple, b: _tuple) + +.. function:: operator *( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator *( a: _tuple, b: _tuple) + +.. function:: operator /( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator /( a: _tuple, b: _tuple) + +.. function:: operator %( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator %( a: _tuple, b: _tuple) + +.. function:: operator **( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator **( a: _tuple, b: _tuple) + +.. function:: operator &( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator &( a: _tuple, b: _tuple) + +.. function:: operator |( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator |( a: _tuple, b: _tuple) + +.. function:: operator ^( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator ^( a: _tuple, b: _tuple) + +.. function:: operator <<( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator <<( a: _tuple, b: _tuple) + +.. function:: operator >>( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator >>( a: _tuple, b: _tuple) + +.. function:: operator >( a: _tuple, b: _tuple) + +.. function:: operator >=( a: _tuple, b: _tuple) + +.. function:: operator <( a: _tuple, b: _tuple) + +.. function:: operator <=( a: _tuple, b: _tuple) + +.. function:: operator ==( a: _tuple, b: _tuple) + +.. function:: operator !=( a: _tuple, b: _tuple) + +.. function:: operator +( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator +( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator -( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator -( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator *( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator *( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator /( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator /( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator %( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator %( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator **( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator **( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator &( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator &( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator |( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator |( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator ^( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator ^( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator <<( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator <<( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator >>( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator >>( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + diff --git a/docs/internal/_sources/modules/internal/ChapelUtil.rst.txt b/docs/internal/_sources/modules/internal/ChapelUtil.rst.txt new file mode 100644 index 000000000..5bf7d23b7 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ChapelUtil.rst.txt @@ -0,0 +1,52 @@ +.. default-domain:: chpl + +.. module:: ChapelUtil + :noindex: + +ChapelUtil +========== +**Usage** + +.. code-block:: chapel + + use ChapelUtil; + + +or + +.. code-block:: chapel + + import ChapelUtil; + +.. function:: proc safeAdd( a: ?t, b: t) + +.. function:: proc safeSub( a: ?t, b: t) + +.. function:: proc safeMul( a: ?t, b: t) + +.. function:: proc _command_line_cast(param s: chpl_c_string, type t, x: c_ptrConst(c_char)) + +.. record:: chpl_main_argument + + .. attribute:: var argc: int(64) + + .. attribute:: var return_value: int(32) + +.. function:: proc chpl_convert_args( arg: chpl_main_argument) + +.. function:: proc chpl_get_mli_connection( arg: chpl_main_argument) + +.. function:: proc chpl_rt_preUserCodeHook() + +.. function:: proc chpl_rt_postUserCodeHook() + +.. function:: proc allocate_string_literals_buf( s: int) : c_ptrConst(c_char) + +.. function:: proc deallocate_string_literals_buf() : void + +.. data:: config param printModuleDeinitOrder = false + +.. function:: proc chpl_addModule( moduleName: chpl_c_string, deinitFun: chpl_c_fn_ptr) + +.. function:: export proc chpl_deinitModules() + diff --git a/docs/internal/_sources/modules/internal/DefaultAssociative.rst.txt b/docs/internal/_sources/modules/internal/DefaultAssociative.rst.txt new file mode 100644 index 000000000..c45502a12 --- /dev/null +++ b/docs/internal/_sources/modules/internal/DefaultAssociative.rst.txt @@ -0,0 +1,210 @@ +.. default-domain:: chpl + +.. module:: DefaultAssociative + :noindex: + +DefaultAssociative +================== +**Usage** + +.. code-block:: chapel + + use DefaultAssociative; + + +or + +.. code-block:: chapel + + import DefaultAssociative; + +.. data:: config param debugDefaultAssoc = false + +.. data:: config param debugAssocDataPar = false + +.. data:: config param defaultAssociativeSupportsAutoLocalAccess = true + +.. class:: DefaultAssociativeDomRehashHelper : chpl__rehashHelpers + + .. attribute:: var dom: unmanaged(DefaultAssociativeDom(?)) + + .. method:: override proc startRehash( newSize: int) + + .. method:: override proc moveElementDuringRehash( oldSlot: int, newSlot: int) + + .. method:: override proc finishRehash( oldSize: int) + +.. class:: DefaultAssociativeDom : BaseAssociativeDom + + .. attribute:: type idxType + + .. attribute:: param parSafe: bool + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var numEntries: chpl__processorAtomicType(int) + + .. attribute:: var tableLock: if parSafe then chpl_LocalSpinlock else nothing + + .. attribute:: var table: chpl__hashtable(idxType, nothing) + + .. method:: proc lockTable() + + .. method:: proc unlockTable() + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: proc init(type idxType, param parSafe: bool, dist: unmanaged(DefaultDist)) + + .. method:: proc deinit() + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSerialWrite( f) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialRead( f) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: proc dsiNumIndices + + .. itermethod:: iter dsiIndsIterSafeForRemoving() + + .. method:: proc _isSlotFull( slot: int) : bool + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: override proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: override proc dsiClear() + + .. method:: proc dsiMember( idx: idxType) : bool + + .. method:: override proc dsiAdd(in idx) + + .. method:: proc _add(in idx: idxType) + + .. method:: proc dsiRemove( idx: idxType) + + .. method:: proc dsiRequestCapacity( numKeys: int) + + .. itermethod:: iter dsiSorted( comparator) + + .. itermethod:: iter _fullSlots() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: DefaultAssociativeArr : AbsBaseArr(?) + + .. attribute:: type idxType + + .. attribute:: param parSafeDom: bool + + .. attribute:: var dom: unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom)) + + .. attribute:: var dataSize: int + + .. attribute:: var data: _ddata(eltType) + + .. attribute:: var tmpData: _ddata(eltType) + + .. attribute:: var eltsNeedDeinit = true + + .. method:: proc init(type eltType, type idxType, param parSafeDom, dom: unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom)), param initElts) + + .. method:: proc deinit() + + .. method:: proc rank param + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc dsiAccess( idx: idxType) ref + + .. method:: proc dsiAccess( idx: 1*(idxType)) ref + + .. method:: proc dsiAccess( idx: idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( idx: 1*(idxType)) ref where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( idx: idxType) const ref + + .. method:: proc dsiAccess( idx: 1*(idxType)) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws where _isDefaultDeser(f) + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws + + .. method:: proc readChapelStyleAssocArray( f) throws + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. itermethod:: iter dsiSorted( comparator) + + .. method:: proc _doDefaultInitSlot( slot: int, inAdd: bool) + + .. method:: override proc _defaultInitSlot( slot: int) + + .. method:: override proc _deinitSlot( slot: int) + + .. method:: proc _elementNeedsDeinit() param + + .. method:: proc _deinitElement(ref elt: eltType) + + .. method:: override proc _startRehash( newSize: int) + + .. method:: override proc _finishRehash( oldSize: int) + + .. method:: override proc _moveElementDuringRehash( oldslot: int, newslot: int) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + +.. function:: proc chpl_serialReadWriteAssociativeHelper( f, arr, dom) throws where _usingSerializers(f) && !_isDefaultDeser(f) + +.. function:: proc chpl_serialReadWriteAssociativeHelper( f, arr, dom) throws + diff --git a/docs/internal/_sources/modules/internal/DefaultRectangular.rst.txt b/docs/internal/_sources/modules/internal/DefaultRectangular.rst.txt new file mode 100644 index 000000000..9959180ac --- /dev/null +++ b/docs/internal/_sources/modules/internal/DefaultRectangular.rst.txt @@ -0,0 +1,508 @@ +.. default-domain:: chpl + +.. module:: DefaultRectangular + :noindex: + +DefaultRectangular +================== +**Usage** + +.. code-block:: chapel + + use DefaultRectangular; + + +or + +.. code-block:: chapel + + import DefaultRectangular; + +.. data:: config const dataParTasksPerLocale = 0 + + .. warning:: + + The variable 'dataParTasksPerLocale' is unstable and its interface is subject to change in the future + +.. data:: config const dataParIgnoreRunningTasks = false + + .. warning:: + + The variable 'dataParIgnoreRunningTasks' is unstable and its interface is subject to change in the future + +.. data:: config const dataParMinGranularity: int = 1 + + .. warning:: + + The variable 'dataParMinGranularity' is unstable and its interface is subject to change in the future + +.. data:: config param debugDefaultDist = false + +.. data:: config param debugDefaultDistBulkTransfer = false + +.. data:: config param debugDataPar = false + +.. data:: config param debugDataParNuma = false + +.. data:: config param disableArrRealloc = false + +.. data:: config param reportInPlaceRealloc = false + +.. data:: config param parallelAssignThreshold = 2 * 1024 * 1024 + +.. data:: config param enableParallelGetsInAssignment = false + +.. data:: config param enableParallelPutsInAssignment = false + +.. data:: config param defaultDoRADOpt = true + +.. data:: config param defaultDisableLazyRADOpt = false + +.. data:: config param earlyShiftData = true + +.. data:: config param usePollyArrayIndex = false + +.. data:: config param defaultRectangularSupportsAutoLocalAccess = true + +.. enum:: enum ArrayStorageOrder { RMO, CMO } + + .. enumconstant:: enum constant RMO + + .. enumconstant:: enum constant CMO + +.. data:: config param defaultStorageOrder = ArrayStorageOrder.RMO + +.. data:: param storageOrder = defaultStorageOrder + +.. function:: proc polly_array_index(arguments: int ...) : int + +.. class:: DefaultDist : BaseDist + + .. warning:: + + DefaultDist is unstable and may change in the future + + .. method:: override proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds) + + .. method:: override proc dsiNewAssociativeDom(type idxType, param parSafe: bool) + + .. method:: override proc dsiNewSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiIndexToLocale( ind) + + .. method:: proc dsiClone() + + .. method:: proc dsiAssign( other: this.type) + + .. method:: proc dsiEqualDMaps( d: unmanaged(DefaultDist)) param + + .. method:: proc dsiEqualDMaps( d) param + + .. method:: override proc trackDomains() param + + .. method:: override proc dsiTrackDomains() + + .. method:: override proc singleton() param + + .. method:: override proc dsiIsLayout() param + +.. data:: var defaultDist = new dmap(new unmanaged DefaultDist()) + +.. function:: proc chpl_defaultDistInitPrivate() + +.. class:: DefaultRectangularDom : BaseRectangularDom(?) + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var ranges: rank*range(idxType, boundKind.both, strides) + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: override proc type isDefaultRectangular() param + + .. method:: override proc isDefaultRectangular() param + + .. method:: proc init(param rank, type idxType, param strides, dist) + + .. method:: proc chpl_integralIdxType type + + .. method:: override proc dsiMyDist() + + .. record:: _serialized_domain + + .. attribute:: param rank + + .. attribute:: type idxType + + .. attribute:: param strides + + .. attribute:: var dims + + .. attribute:: param isDefaultRectangular + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiGetIndices() + + .. method:: proc dsiSetIndices( x) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. itermethod:: iter these_help(param d: int) + + .. itermethod:: iter these_help(param d: int, block) + + + iter these_help(param d: int) where storageOrder == ArrayStorageOrder.CMO { + param rd = rank - d + 1; + if rd == 1 { + for i in ranges(rd) do + yield i; + } else if rd == 2 { + for i in ranges(rd) do + for j in these_help(rank-1) do + yield (j, i); + } else { + for i in ranges(rd) do + for j in these_help(d+1) do + yield ((...j), i); + } + } + + .. itermethod:: iter these( tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) + + + iter these_help(param d: int, block) where storageOrder == ArrayStorageOrder.CMO { + param rd = rank - d + 1; + if rd == 1 { + for i in block(rd) do + yield i; + } else if rd == 2 { + for i in block(rd) do + for j in these_help(block.size, block) do + yield (j, i); + } else { + for i in block(rd) do + for j in these_help(d+1, block) do + yield ((...j), i); + } + } + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.follower + + .. method:: proc dsiMember( ind: rank*idxType) + + .. method:: proc dsiIndexOrder( ind: rank*idxType) + + .. method:: proc dsiDims() + + .. method:: proc dsiDim( d: int) + + .. method:: proc dsiDim(param d: int) + + .. method:: proc dsiNumIndices + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc doiTryCreateArray(type eltType) throws + + .. method:: proc dsiBuildArrayWith(type eltType, data: _ddata(eltType), allocSize: int) + + .. method:: proc dsiLocalSlice( ranges) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: proc chpl_intToIdx( i) + +.. function:: proc chpl__intToIdx(type idxType, i: integral, j ...) + +.. function:: proc chpl__intToIdx(type idxType, i: integral, j: integral) + +.. function:: proc chpl__intToIdx(type idxType, i: _tuple) + +.. record:: _remoteAccessData + + .. attribute:: type eltType + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. attribute:: param blkChanged: bool = false + + .. attribute:: var off: rank*idxType + + .. attribute:: var blk: rank*int + + .. attribute:: var str: rank*chpl__signedType(chpl__idxTypeToIntIdxType(idxType)) + + .. attribute:: var origin: int + + .. attribute:: var factoredOffs: int + + .. attribute:: var data: _ddata(eltType) + + .. attribute:: var shiftedData: _ddata(eltType) + + .. method:: proc hasUnitStride() param + + .. method:: proc ref theData ref + + .. method:: proc getDataElem( i) ref + + .. method:: proc dataElem( i) ref + + .. method:: proc shiftedDataElem( i) ref + +.. method:: proc _remoteAccessData.getDataIndex( ind: idxType) + +.. method:: proc _remoteAccessData.getDataIndex( ind: rank*idxType) + +.. method:: proc ref _remoteAccessData.computeFactoredOffs() + +.. method:: proc ref _remoteAccessData.initShiftedData() + +.. method:: proc _remoteAccessData.strideAlignUp( lo, r) + +.. method:: proc _remoteAccessData.strideAlignDown( hi, r) + +.. method:: proc ref _remoteAccessData.initDataFrom( other: _remoteAccessData) + +.. method:: proc _remoteAccessData.toSlice( newDom) + +.. method:: proc _remoteAccessData.toReindex( newDom) + +.. method:: proc _remoteAccessData.toRankChange( newDom, cd, idx) + +.. class:: LocRADCache + + .. attribute:: type eltType + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. attribute:: var targetLocDom: domain(rank) + + .. attribute:: var RAD: [targetLocDom] _remoteAccessData(eltType, rank, idxType, strides) + + .. attribute:: var RADLocks: [targetLocDom] chpl_LocalSpinlock + + .. method:: proc init(type eltType, param rank: int, type idxType, param strides: strideKind, newTargetLocDom: domain(rank)) + + .. method:: proc lockRAD( rlocIdx) + + .. method:: proc unlockRAD( rlocIdx) + +.. class:: DefaultRectangularArr : BaseRectangularArr(?) + + .. attribute:: type idxSignedType = chpl__signedType(chpl__idxTypeToIntIdxType(idxType)) + + .. attribute:: var dom: unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides)) + + .. attribute:: var off: rank*idxType + + .. attribute:: var blk: rank*int + + .. attribute:: var sizesPerDim: rank*int + + .. attribute:: var str: rank*idxSignedType + + .. attribute:: var factoredOffs: int + + .. attribute:: var data: _ddata(eltType) = nil + + .. attribute:: var shiftedData: _ddata(eltType) + + .. attribute:: var externFreeFunc: c_ptr(void) + + .. attribute:: var externArr: bool = false + + .. attribute:: var _borrowed: bool = true + + .. attribute:: var callPostAlloc: bool = true + + .. attribute:: var deinitElts: bool = true + + .. method:: proc init(type eltType, param rank, type idxType, param strides, dom: unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides)), param initElts = true, param deinitElts = initElts, data: _ddata(eltType) = nil, externArr = false, _borrowed = false, externFreeFunc: c_ptr(void) = nil) + + .. method:: proc chpl_integralIdxType type + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: override proc dsiGetBaseDom() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc chpl_unsafeAssignIsClassElementNil( manager, idx) where idx.type == rank * idxType + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: proc theData ref + + .. itermethod:: iter these( tasksPerLocale: int = dataParTasksPerLocale, ignoreRunning: bool = dataParIgnoreRunningTasks, minIndicesPerTask: int = dataParMinGranularity) ref + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref where tag == iterKind.follower + + .. method:: proc computeFactoredOffs() + + .. method:: proc initShiftedData() + + .. method:: proc setupFieldsAndAllocate(param initElts) + + .. method:: proc getDataIndex(ind: idxType ...1, param getShifted = true) where rank == 1 + + .. method:: proc getDataIndex( ind: rank*idxType, param getShifted = true) + + .. method:: proc dsiAccess(ind: idxType ...1) ref where rank == 1 + + .. method:: proc dsiAccess(ind: idxType ...1) where rank == 1 && shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(ind: idxType ...1) const ref where rank == 1 + + .. method:: proc dsiAccess(const in ind: rank*idxType) ref + + .. method:: proc dsiAccess(const in ind: rank*idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(const in ind: rank*idxType) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc adjustBlkOffStrForNewDomain( d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr)) + + .. method:: proc adjustBlkOffStrForNewDomain( d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr)) where dom.hasUnitStride() && this.hasUnitStride() + + .. method:: override proc dsiReallocate( bounds: rank*range(idxType, boundKind.both, strides)) + + .. method:: override proc dsiPostReallocate() + + .. method:: proc dsiLocalSlice( ranges) + + .. method:: proc dsiGetRAD() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: override proc dsiIteratorYieldsLocalElements() param + +.. iterfunction:: iter chpl__serialViewIter1D( arr, viewRange) ref where chpl__isDROrDRView(arr) + +.. iterfunction:: iter chpl__serialViewIter( arr, viewDom) ref where chpl__isDROrDRView(arr) + +.. iterfunction:: iter chpl__serialViewIter( arr, viewDom) ref + +.. iterfunction:: iter chpl__serialViewIterHelper( arr, viewDom) ref + +.. method:: proc DefaultRectangularDom.dsiSerialReadWrite( f) throws + +.. method:: proc DefaultRectangularDom.dsiSerialWrite( f) throws where _supportsSerializers(f) && !isDefaultSerializerType(f.serializerType) + +.. method:: proc DefaultRectangularDom.dsiSerialRead( f) throws where _supportsSerializers(f) && f.deserializerType != IO.defaultDeserializer + +.. method:: proc DefaultRectangularDom.doiToString() + +.. method:: proc DefaultRectangularDom.dsiSerialWrite( f) throws + +.. method:: proc DefaultRectangularDom.dsiSerialRead( f) throws + +.. method:: proc DefaultRectangularArr.dsiSerialReadWrite( f) throws + +.. method:: override proc DefaultRectangularDom.dsiSupportsAutoLocalAccess() param + +.. function:: proc chpl_serialReadWriteRectangular( f, arr) throws + +.. function:: proc chpl_serialReadWriteRectangular( f, arr, dom) throws + +.. function:: proc _supportsBulkElements( f, arr) param: bool + +.. function:: proc _supportsSerializers( f) param: bool + +.. function:: proc chpl_serialReadWriteRectangularHelper( f, arr, dom) throws where _supportsSerializers(f) + +.. function:: proc chpl_serialReadWriteRectangularHelper( f, arr, dom) throws + +.. method:: proc DefaultRectangularArr.dsiSerialWrite( f) throws + +.. method:: proc DefaultRectangularArr.dsiSerialRead( f) throws + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom: domain) + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom: range) + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom) + +.. method:: override proc DefaultRectangularArr.doiCanBulkTransferRankChange() param + +.. method:: proc DefaultRectangularArr.doiBulkTransferToKnown( srcDom, destClass: DefaultRectangularArr, destDom) : bool + +.. method:: proc DefaultRectangularArr.doiBulkTransferFromKnown( destDom, srcClass: DefaultRectangularArr, srcDom) : bool + +.. method:: override proc DefaultRectangularArr.isDefaultRectangular() param + +.. method:: override proc type DefaultRectangularArr.isDefaultRectangular() param + +.. data:: config param debugDRScan = false + +.. method:: proc DefaultRectangularArr.doiScan( op, dom) where rank == 1 && chpl__scanStateResTypesMatch(op) + + This computes a 1D scan in parallel on the array, for 1D arrays only + +.. method:: proc DefaultRectangularArr.doiOptimizedSwap( other: this.type) + +.. method:: proc DefaultRectangularArr.doiOptimizedSwap( other) where debugOptimizedSwap + +.. method:: proc DefaultRectangularArr.chpl__preScan( op, ref res: [] ?resType, dom) + +.. method:: proc DefaultRectangularArr.chpl__postScan( op, ref res, numTasks, rngs, state) + diff --git a/docs/internal/_sources/modules/internal/DefaultSparse.rst.txt b/docs/internal/_sources/modules/internal/DefaultSparse.rst.txt new file mode 100644 index 000000000..0d2cc3c2e --- /dev/null +++ b/docs/internal/_sources/modules/internal/DefaultSparse.rst.txt @@ -0,0 +1,128 @@ +.. default-domain:: chpl + +.. module:: DefaultSparse + :noindex: + +DefaultSparse +============= +**Usage** + +.. code-block:: chapel + + use DefaultSparse; + + +or + +.. code-block:: chapel + + import DefaultSparse; + +.. data:: config param debugDefaultSparse = false + +.. data:: config param defaultSparseSupportsAutoLocalAccess = true + +.. class:: DefaultSparseDom : BaseSparseDomImpl(?) + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var _nnz = 0 + + .. attribute:: var _indices: [nnzDom] index(rank, idxType) + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: proc init(param rank, type idxType, dist: unmanaged(DefaultDist), parentDom: domain) + + .. method:: override proc getNNZ() : int + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. itermethod:: iter dsiIndsIterSafeForRemoving() + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis: (?, ?, ?)) where tag == iterKind.follower + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc find( ind) + + .. method:: proc dsiMember( ind) + + .. method:: proc parSafe param + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: proc add_help( ind) + + .. method:: proc rem_help( ind) + + .. method:: proc dsiAdd( ind: idxType) where rank == 1 + + .. method:: proc dsiRemove( ind: idxType) where rank == 1 + + .. method:: proc dsiAdd( ind: rank*idxType) + + .. method:: proc dsiRemove( ind: rank*idxType) + + .. method:: override proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: override proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: override proc dsiClear() + + .. itermethod:: iter dimIter(param d, ind) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: DefaultSparseArr : BaseSparseArrImpl(?) + + .. method:: proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool) + + .. method:: proc dsiAccess( ind: rank*idxType) ref + + .. method:: proc dsiAccess( ind: rank*idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( ind: rank*idxType) const ref + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis: (?, ?, ?)) ref where tag == iterKind.follower + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass: this.type, destDom) + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass: this.type, srcDom) : bool + +.. method:: proc DefaultSparseDom.dsiSerialWrite( f, printBrackets = true) throws + +.. method:: proc DefaultSparseArr.dsiSerialWrite( f) throws + diff --git a/docs/internal/_sources/modules/internal/ExportWrappers.rst.txt b/docs/internal/_sources/modules/internal/ExportWrappers.rst.txt new file mode 100644 index 000000000..6956ae6a2 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ExportWrappers.rst.txt @@ -0,0 +1,66 @@ +.. default-domain:: chpl + +.. module:: ExportWrappers + :noindex: + +ExportWrappers +============== +**Usage** + +.. code-block:: chapel + + use ExportWrappers; + + +or + +.. code-block:: chapel + + import ExportWrappers; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: export proc chpl_libraryModuleLevelSetup() : void + +.. function:: export proc chpl_libraryModuleLevelCleanup() : void + +.. record:: chpl_byte_buffer + + .. attribute:: var isOwned: int(8) + + .. attribute:: var data: c_ptr(c_char) + + .. attribute:: var size: uint(64) + +.. function:: proc chpl_byte_buffer_free( cb: chpl_byte_buffer) + +.. type:: type chpl__exportTypeChplByteBuffer = chpl_byte_buffer + +.. function:: proc chpl__exportRetStringOrBytes(ref val) : chpl_byte_buffer + +.. function:: proc chpl__exportRet(ref val: string, type rt: chpl_byte_buffer) : rt + +.. function:: proc chpl__exportRet(ref val: bytes, type rt: chpl_byte_buffer) : rt + +.. function:: proc chpl__exportArg( cp: bool, val: chpl_byte_buffer, type rt: string) : rt + +.. function:: proc chpl__exportArg( cp: bool, val: chpl_byte_buffer, type rt: bytes) : rt + diff --git a/docs/internal/_sources/modules/internal/ExternalArray.rst.txt b/docs/internal/_sources/modules/internal/ExternalArray.rst.txt new file mode 100644 index 000000000..2c4cfa2a1 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ExternalArray.rst.txt @@ -0,0 +1,68 @@ +.. default-domain:: chpl + +.. module:: ExternalArray + :noindex: + +ExternalArray +============= +**Usage** + +.. code-block:: chapel + + use ExternalArray; + + +or + +.. code-block:: chapel + + import ExternalArray; + +.. record:: chpl_opaque_array + + .. attribute:: var _pid: int + + .. attribute:: var _instance: c_ptr(void) + + .. attribute:: var _unowned: bool + +.. record:: chpl_external_array + + .. attribute:: var elts: c_ptr(void) + + .. attribute:: var num_elts: uint + + .. attribute:: var freer: c_ptr(void) + +.. function:: proc chpl_make_external_array( elt_size: uint, num_elts: uint) : chpl_external_array + +.. function:: proc chpl_make_external_array_ptr( elts: c_ptr(void), num_elts: uint) : chpl_external_array + +.. function:: proc chpl_make_external_array_ptr_free( elts: c_ptr(void), num_elts: uint) : chpl_external_array + +.. function:: proc chpl_free_external_array(in x: chpl_external_array) + +.. function:: proc chpl_call_free_func( func: c_ptr(void), elts: c_ptr(void)) + +.. function:: proc makeArrayFromPtr( value: c_ptr, num_elts: uint) + +.. function:: proc makeArrayFromPtr( value: c_ptr, dom: domain) + +.. function:: proc makeArrayFromExternArray( value: chpl_external_array, type eltType) + +.. function:: proc makeArrayFromExternArray( value: chpl_external_array, type eltType, dom: domain) where dom.isRectangular() + +.. function:: proc makeArrayFromOpaque( value: chpl_opaque_array, type arrType) + +.. function:: proc convertStringOrBytes(ref arr: []) : chpl_external_array where arr.eltType == string || arr.eltType == bytes + +.. function:: proc convertToExternalArray(in arr: []) : chpl_external_array where getExternalArrayType(arr) == chpl_external_array + +.. function:: proc convertToExternalArray(ref arr: []) : chpl_opaque_array where getExternalArrayType(arr) == chpl_opaque_array + +.. function:: proc getExternalArrayType( arg) type + +.. function:: proc getExternalArrayType(type arg) type + +.. function:: export proc cleanupOpaqueArray(const ref arr: chpl_opaque_array) + diff --git a/docs/internal/_sources/modules/internal/ISO_Fortran_binding.rst.txt b/docs/internal/_sources/modules/internal/ISO_Fortran_binding.rst.txt new file mode 100644 index 000000000..2a41fa743 --- /dev/null +++ b/docs/internal/_sources/modules/internal/ISO_Fortran_binding.rst.txt @@ -0,0 +1,198 @@ +.. default-domain:: chpl + +.. module:: ISO_Fortran_binding + :noindex: + +ISO_Fortran_binding +=================== +**Usage** + +.. code-block:: chapel + + use ISO_Fortran_binding; + + +or + +.. code-block:: chapel + + import ISO_Fortran_binding; + +.. data:: const CFI_attribute_pointer: int + +.. data:: const CFI_attribute_allocatable: int + +.. data:: const CFI_attribute_other: int + +.. data:: const CFI__max_attribute: int + +.. data:: const CFI_type_int8_t: int + +.. data:: const CFI_type_int16_t: int + +.. data:: const CFI_type_int32_t: int + +.. data:: const CFI_type_int64_t: int + +.. data:: const CFI_type_signed_char: int + +.. data:: const CFI_type_short: int + +.. data:: const CFI_type_int: int + +.. data:: const CFI_type_long: int + +.. data:: const CFI_type_long_long: int + +.. data:: const CFI_type_size_t: int + +.. data:: const CFI_type_int_least8_t: int + +.. data:: const CFI_type_int_least16_t: int + +.. data:: const CFI_type_int_least32_t: int + +.. data:: const CFI_type_int_least64_t: int + +.. data:: const CFI_type_int_fast8_t: int + +.. data:: const CFI_type_int_fast16_t: int + +.. data:: const CFI_type_int_fast32_t: int + +.. data:: const CFI_type_int_fast64_t: int + +.. data:: const CFI_type_intmax_t: int + +.. data:: const CFI_type_intptr_t: int + +.. data:: const CFI_type_ptrdiff_t: int + +.. data:: const CFI_type_float: int + +.. data:: const CFI_type_double: int + +.. data:: const CFI_type_long_double: int + +.. data:: const CFI_type_double_Complex: int + +.. data:: const CFI_type_long_double_Complex: int + +.. data:: const CFI_type_Bool: int + +.. data:: const CFI_type_char: int + +.. data:: const CFI_type_cptr: int + +.. data:: const CFI_type_struct: int + +.. data:: const CFI_type_other: int + +.. data:: const CFI__max_type: int + +.. data:: const CFI_SUCCESS: int + +.. data:: const CFI_ERROR_BASE_ADDR_NULL: int + +.. data:: const CFI_ERROR_BASE_ADDR_NOT_NULL: int + +.. data:: const CFI_INVALID_ELEM_LEN: int + +.. data:: const CFI_INVALID_RANK: int + +.. data:: const CFI_INVALID_TYPE: int + +.. data:: const CFI_INVALID_ATTRIBUTE: int + +.. data:: const CFI_INVALID_EXTENT: int + +.. data:: const CFI_INVALID_DESCRIPTOR: int + +.. data:: const CFI_ERROR_MEM_ALLOCATION: int + +.. data:: const CFI_ERROR_OUT_OF_BOUNDS: int + +.. data:: const CFI_MAX_RANK: int + +.. data:: const CFI_VERSION: int + +.. data:: const CFI__VERSION_0001: int + +.. function:: proc CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t)) + +.. function:: proc for_CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t)) : c_ptr(void) + +.. function:: proc CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int + +.. function:: proc for_CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int + +.. function:: proc CFI_deallocate(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc for_CFI_deallocate(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t), version: c_int) : c_int + +.. function:: proc CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc for_CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int + +.. function:: proc CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int + +.. function:: proc for_CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int + +.. function:: proc CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int + +.. type:: type CFI_attribute_t = c_ptrdiff + +.. record:: CFI_cdesc_t + + .. attribute:: var base_addr: c_ptr(void) + + .. attribute:: var elem_len: c_size_t + + .. attribute:: var version: c_int + + .. attribute:: var attribute: CFI_attribute_t + + .. attribute:: var rank: CFI_rank_t + + .. attribute:: var ctype: CFI_type_t + + .. attribute:: var dim: c_ptr(CFI_dim_t) + +.. record:: CFI_dim_t + + + extern record CFI_CDESC_T { + param r: int; + var base_addr: c_ptr(void); + var elem_len: c_size_t; + var version: c_int; + var attribute: CFI_attribute_t; + var rank: CFI_rank_t; + //var type: CFI_type_t; + var dim: [0..#r] CFI_dim_t; + } + + .. attribute:: var extent: CFI_index_t + + .. attribute:: var sm: CFI_index_t + + .. attribute:: var lower_bound: CFI_index_t + +.. type:: type CFI_index_t = c_ptrdiff + +.. type:: type CFI_rank_t = c_ptrdiff + +.. type:: type CFI_type_t = c_ptrdiff + +.. function:: proc makeArrayFromFortranArray(ref FA: CFI_cdesc_t, type eltType, param rank = 1) + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpAPU.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpAPU.rst.txt new file mode 100644 index 000000000..bd651a152 --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpAPU.rst.txt @@ -0,0 +1,57 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpAPU + :noindex: + +LocaleModelHelpAPU +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpAPU; + + +or + +.. code-block:: chapel + + import LocaleModelHelpAPU; + + +* Copyright 2017 Advanced Micro Devices, Inc. +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = true + +.. data:: param localeModelPartitionsIterationOnSublocales = true + +.. data:: config param debugAPULocale = false + +.. function:: proc chpl_getSubloc() + +.. function:: proc chpl_task_setSubloc( subloc: int(32)) + +.. function:: export proc chpl_doDirectExecuteOn(const ref loc: chpl_localeID_t) : bool + +.. function:: export proc chpl_executeOn(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnFast(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnNB(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpFlat.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpFlat.rst.txt new file mode 100644 index 000000000..3bd81e74b --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpFlat.rst.txt @@ -0,0 +1,52 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpFlat + :noindex: + +LocaleModelHelpFlat +=================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpFlat; + + +or + +.. code-block:: chapel + + import LocaleModelHelpFlat; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = false + +.. data:: param localeModelPartitionsIterationOnSublocales = false + +.. function:: export proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool + +.. function:: export proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpGPU.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpGPU.rst.txt new file mode 100644 index 000000000..21fea151a --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpGPU.rst.txt @@ -0,0 +1,56 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpGPU + :noindex: + +LocaleModelHelpGPU +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpGPU; + + +or + +.. code-block:: chapel + + import LocaleModelHelpGPU; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = true + +.. data:: param localeModelPartitionsIterationOnSublocales = false + +.. data:: config param debugGPULocale = false + +.. function:: proc chpl_getSubloc() + +.. function:: proc chpl_task_setSubloc( subloc: int(32)) + +.. function:: proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool + +.. function:: proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpMem.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpMem.rst.txt new file mode 100644 index 000000000..95cc4d0e6 --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpMem.rst.txt @@ -0,0 +1,34 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpMem + :noindex: + +LocaleModelHelpMem +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpMem; + + +or + +.. code-block:: chapel + + import LocaleModelHelpMem; + +.. function:: proc chpl_here_alloc( size: int(64), md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_alloc( size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_aligned_alloc( alignment: integral, size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_calloc( size: integral, number: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_realloc( ptr: c_ptr(void), size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_good_alloc_size( min_size: integral) : min_size.type + +.. function:: proc chpl_here_free( ptr: c_ptr(void)) : void + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpRuntime.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpRuntime.rst.txt new file mode 100644 index 000000000..ac7cd8ec3 --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpRuntime.rst.txt @@ -0,0 +1,70 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpRuntime + :noindex: + +LocaleModelHelpRuntime +====================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpRuntime; + + +or + +.. code-block:: chapel + + import LocaleModelHelpRuntime; + +.. record:: chpl_localeID_t + +.. record:: chpl_comm_on_bundle_t + +.. record:: chpl_task_bundle_t + +.. type:: type chpl_comm_on_bundle_p + +.. type:: type chpl_task_bundle_p + +.. function:: proc chpl_comm_on_bundle_task_bundle( bundle: chpl_comm_on_bundle_p) : chpl_task_bundle_p + +.. function:: proc chpl_rt_buildLocaleID( node: chpl_nodeID_t, subloc: chpl_sublocID_t) : chpl_localeID_t + +.. function:: proc chpl_rt_nodeFromLocaleID(in loc: chpl_localeID_t) : chpl_nodeID_t + +.. function:: proc chpl_rt_sublocFromLocaleID(in loc: chpl_localeID_t) : chpl_sublocID_t + +.. function:: proc chpl_buildLocaleID( node: chpl_nodeID_t, subloc: chpl_sublocID_t) + +.. function:: proc chpl_nodeFromLocaleID(in loc: chpl_localeID_t) + +.. function:: proc chpl_sublocFromLocaleID(in loc: chpl_localeID_t) + +.. function:: proc chpl_comm_execute_on( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, arg_size: c_size_t) + +.. function:: proc chpl_comm_execute_on_fast( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_comm_execute_on_nb( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_comm_taskCallFTable( fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t, subloc_id: int) : void + +.. function:: proc chpl_ftable_call( fn: int, args: chpl_comm_on_bundle_p) : void + +.. function:: proc chpl_ftable_call( fn: int, args: chpl_task_bundle_p) : void + +.. function:: proc chpl_task_addTask( fn: int, args: chpl_task_bundle_p, args_size: c_size_t, subloc_id: int) + +.. function:: proc chpl_task_yield() + + .. warning:: + + 'chpl_task_yield' is deprecated, please use 'currentTask.yieldExecution' instead + +.. function:: proc chpl_taskAddBegin( subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_taskAddCoStmt( subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t) + +.. function:: proc chpl__initCopy( initial: chpl_localeID_t, definedConst: bool) : chpl_localeID_t + diff --git a/docs/internal/_sources/modules/internal/LocaleModelHelpSetup.rst.txt b/docs/internal/_sources/modules/internal/LocaleModelHelpSetup.rst.txt new file mode 100644 index 000000000..158577295 --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocaleModelHelpSetup.rst.txt @@ -0,0 +1,60 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpSetup + :noindex: + +LocaleModelHelpSetup +==================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpSetup; + + +or + +.. code-block:: chapel + + import LocaleModelHelpSetup; + +.. data:: config param debugLocaleModel = false + +.. function:: proc chpl_nodeID : chpl_nodeID_t + +.. record:: chpl_root_locale_accum + + .. attribute:: var nPUsPhysAcc: atomic(int) + + .. attribute:: var nPUsPhysAll: atomic(int) + + .. attribute:: var nPUsLogAcc: atomic(int) + + .. attribute:: var nPUsLogAll: atomic(int) + + .. attribute:: var maxTaskPar: atomic(int) + + .. method:: proc init() + + .. method:: proc init=( other: chpl_root_locale_accum) + + .. method:: proc ref accum( loc: locale) + + .. method:: proc setRootLocaleValues( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleFlat( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleNUMA( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleAPU( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleGPU( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupLocaleFlat( dst: borrowed(LocaleModel), out local_name: string) + +.. function:: proc helpSetupLocaleNUMA( dst: borrowed(LocaleModel), out local_name: string, numSublocales, type NumaDomain) + +.. function:: proc helpSetupLocaleAPU( dst: borrowed(LocaleModel), out local_name: string, out numSublocales, type CPULocale, type GPULocale) + +.. function:: proc helpSetupLocaleGPU( dst: borrowed(LocaleModel), out local_name: string, numSublocales: int, type GPULocale) + diff --git a/docs/internal/_sources/modules/internal/LocalesArray.rst.txt b/docs/internal/_sources/modules/internal/LocalesArray.rst.txt new file mode 100644 index 000000000..4ba03346b --- /dev/null +++ b/docs/internal/_sources/modules/internal/LocalesArray.rst.txt @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: LocalesArray + :noindex: + +LocalesArray +============ +**Usage** + +.. code-block:: chapel + + use LocalesArray; + + +or + +.. code-block:: chapel + + import LocalesArray; + +.. data:: const ref Locales = (rootLocale._instance: borrowed(RootLocale?))!.getDefaultLocaleArray() + +.. data:: const LocaleSpace = Locales.domain + diff --git a/docs/internal/_sources/modules/internal/MemConsistency.rst.txt b/docs/internal/_sources/modules/internal/MemConsistency.rst.txt new file mode 100644 index 000000000..724546858 --- /dev/null +++ b/docs/internal/_sources/modules/internal/MemConsistency.rst.txt @@ -0,0 +1,96 @@ +.. default-domain:: chpl + +.. module:: MemConsistency + :noindex: + +MemConsistency +============== +**Usage** + +.. code-block:: chapel + + use MemConsistency; + + +or + +.. code-block:: chapel + + import MemConsistency; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. type:: type memory_order + +.. function:: proc _defaultOf(type t: memory_order) + +.. method:: operator memory_order.==( a: memory_order, b: memory_order) : bool + +.. method:: operator memory_order.!=( a: memory_order, b: memory_order) : bool + +.. method:: operator memory_order. = (ref lhs: memory_order, rhs: memory_order) + +.. method:: proc memory_order.serialize( writer, ref serializer) throws + +.. data:: const memory_order_relaxed: memory_order + +.. data:: const memory_order_consume: memory_order + +.. data:: const memory_order_acquire: memory_order + +.. data:: const memory_order_release: memory_order + +.. data:: const memory_order_acq_rel: memory_order + +.. data:: const memory_order_seq_cst: memory_order + +.. enum:: enum memoryOrder { seqCst, acqRel, release, acquire, relaxed } + + .. enumconstant:: enum constant seqCst + + .. enumconstant:: enum constant acqRel + + .. enumconstant:: enum constant release + + .. enumconstant:: enum constant acquire + + .. enumconstant:: enum constant relaxed + +.. function:: proc readableOrder(param order: memoryOrder) param + +.. function:: proc c_memory_order(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_release() + +.. function:: proc chpl_rmem_consist_acquire() + +.. function:: proc chpl_rmem_consist_maybe_release( order: memory_order) + +.. function:: proc chpl_rmem_consist_maybe_release(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_maybe_acquire( order: memory_order) + +.. function:: proc chpl_rmem_consist_maybe_acquire(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_fence( order: memory_order) + +.. function:: proc chpl_rmem_consist_fence(param order: memoryOrder) + diff --git a/docs/internal/_sources/modules/internal/MemTracking.rst.txt b/docs/internal/_sources/modules/internal/MemTracking.rst.txt new file mode 100644 index 000000000..a669f082c --- /dev/null +++ b/docs/internal/_sources/modules/internal/MemTracking.rst.txt @@ -0,0 +1,94 @@ +.. default-domain:: chpl + +.. module:: MemTracking + :noindex: + +MemTracking +=========== +**Usage** + +.. code-block:: chapel + + use MemTracking; + + +or + +.. code-block:: chapel + + import MemTracking; + +.. data:: config const memTrack: bool = false + + .. warning:: + + The variable 'memTrack' is unstable and its interface is subject to change in the future + +.. data:: config const memStats: bool = false + + .. warning:: + + The variable 'memStats' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksByType: bool = false + + .. warning:: + + The variable 'memLeaksByType' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaks: bool = false + + .. warning:: + + The variable 'memLeaks' is unstable and its interface is subject to change in the future + +.. data:: config const memMax: uint = 0 + + .. warning:: + + The variable 'memMax' is unstable and its interface is subject to change in the future + +.. data:: config const memThreshold: uint = 0 + + .. warning:: + + The variable 'memThreshold' is unstable and its interface is subject to change in the future + +.. data:: config const memLog: string + + .. warning:: + + The variable 'memLog' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksLog: string + + .. warning:: + + The variable 'memLeaksLog' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksByDesc: string + + .. warning:: + + The variable 'memLeaksByDesc' is unstable and its interface is subject to change in the future + + Causes the contents of the memory tracking array to be printed at the end + of the program. + Entries remaining in the memory tracking array represent leaked memory, + because they are tracked allocations with no corresponding free. + + The dump is performed only if the --memLeaksByDesc option is present and has + a string argument. + --memLeaksByDesc="" causes all memory records to be printed. Same as --memLeaks. + --memLeaksByDesc="" causes only those memory records + matching the given to be printed. + For example, --memLeaksByDesc="string copy data" causes only string copy + data leaks to be printed. + + +.. data:: const cMemMax = memMax.safeCast(c_size_t) + +.. data:: const cMemThreshold = memThreshold.safeCast(c_size_t) + +.. function:: export proc chpl_memTracking_returnConfigVals(ref ret_memTrack: bool, ref ret_memStats: bool, ref ret_memLeaksByType: bool, ref ret_memLeaksByDesc: c_ptrConst(c_char), ref ret_memLeaks: bool, ref ret_memMax: c_size_t, ref ret_memThreshold: c_size_t, ref ret_memLog: c_ptrConst(c_char), ref ret_memLeaksLog: c_ptrConst(c_char)) + diff --git a/docs/internal/_sources/modules/internal/NetworkAtomicTypes.rst.txt b/docs/internal/_sources/modules/internal/NetworkAtomicTypes.rst.txt new file mode 100644 index 000000000..3b16e90c9 --- /dev/null +++ b/docs/internal/_sources/modules/internal/NetworkAtomicTypes.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: NetworkAtomicTypes + :noindex: + +NetworkAtomicTypes +================== +**Usage** + +.. code-block:: chapel + + use NetworkAtomicTypes; + + +or + +.. code-block:: chapel + + import NetworkAtomicTypes; + diff --git a/docs/internal/_sources/modules/internal/NetworkAtomics.rst.txt b/docs/internal/_sources/modules/internal/NetworkAtomics.rst.txt new file mode 100644 index 000000000..49d4c76cd --- /dev/null +++ b/docs/internal/_sources/modules/internal/NetworkAtomics.rst.txt @@ -0,0 +1,34 @@ +.. default-domain:: chpl + +.. module:: NetworkAtomics + :noindex: + +NetworkAtomics +============== +**Usage** + +.. code-block:: chapel + + use NetworkAtomics; + + +or + +.. code-block:: chapel + + import NetworkAtomics; + +.. record:: RAtomicBool : writeSerializable + + .. method:: proc type valType type + + .. method:: proc valType type + + .. attribute:: var _v: int(64) + +.. record:: RAtomicT : writeSerializable + + .. attribute:: type valType + + .. attribute:: var _v: valType + diff --git a/docs/internal/_sources/modules/internal/OwnedObject.rst.txt b/docs/internal/_sources/modules/internal/OwnedObject.rst.txt new file mode 100644 index 000000000..d1dbba112 --- /dev/null +++ b/docs/internal/_sources/modules/internal/OwnedObject.rst.txt @@ -0,0 +1,150 @@ +.. default-domain:: chpl + +.. module:: OwnedObject + :noindex: + +OwnedObject +=========== +**Usage** + +.. code-block:: chapel + + use OwnedObject; + + +or + +.. code-block:: chapel + + import OwnedObject; + + + +.. record:: _owned : writeSerializable, readDeserializable + + + :type:`owned` manages the deletion of a class instance assuming + that this :type:`owned` is the only thing responsible for + managing the lifetime of the class instance. + + + .. attribute:: type chpl_t + + .. attribute:: var chpl_p: __primitive("to nilable class", chpl_t) + +.. method:: proc _owned.init(type chpl_t) + +.. method:: proc _owned.init( p: borrowed) + +.. method:: proc _owned.init( p: unmanaged) + +.. method:: proc _owned.init( p: ?T) where isClass(T) == false && isSubtype(T, _owned) == false && isIterator(p) == false + +.. method:: proc _owned.init=(ref src: _owned) + + + Copy-initializer. Creates a new :type:`owned` that takes over ownership + from `src`. `src` will refer to `nil` after this call. + + +.. method:: proc _owned.init=( src: shared) + +.. method:: proc _owned.init=( src: borrowed) + +.. method:: proc _owned.init=( src: unmanaged) + +.. method:: proc _owned.init=( src: _nilType) + +.. method:: proc _owned.init(ref src: _owned) + +.. method:: proc type _owned.adopt( source) + +.. method:: proc type _owned.adopt(in obj: unmanaged) + + + Starts managing the argument class instance `obj` + using the `owned` memory management strategy. + The result type preserves nilability of the argument type. + + It is an error to directly delete the class instance + after passing it to `owned.adopt()`. + + +.. method:: proc type _owned.release( source) + +.. method:: proc type _owned.release(ref obj: owned) + + + Empty `obj` so that it manages `nil` and + return the instance previously managed by this owned object. + + If the argument is `nil` it returns `nil`. + + +.. method:: proc _owned.deinit() + + + The deinitializer for :type:`owned` will destroy the class + instance it manages when the :type:`owned` goes out of scope. + + +.. method:: proc _owned.borrow() + + + Return the object managed by this :type:`owned` without impacting its + lifetime at all. It is an error to use the value returned by this function + after the :type:`owned` goes out of scope or deletes the contained class + instance for another reason, such as with `=` or :proc:`owned.adopt`. In some + cases such errors are caught at compile-time. + + +.. function:: operator = (ref lhs: _owned, ref rhs: _owned) where !(isNonNilableClass(lhs) && isNilableClass(rhs)) + + + Assignment between two :type:`owned` transfers ownership of the object + managed by ``rhs`` to ``lhs``. This is done by setting ``rhs`` to `nil` and + then setting ``lhs`` to point to the object that ``rhs`` managed before, + if any. After that, it deletes the object previously managed by ``lhs``, + if any. + + +.. function:: operator = (ref lhs: _owned, rhs: _nilType) + +.. function:: operator <=>(ref lhs: _owned, ref rhs: lhs.type) + + + Swap two :type:`owned` objects. + + +.. function:: proc chpl__initCopy(ref src: _owned, definedConst: bool) + +.. function:: proc chpl__autoCopy(ref src: _owned, definedConst: bool) + +.. function:: proc chpl__autoDestroy(ref x: _owned) + +.. method:: proc _owned.serialize( writer, ref serializer) throws + +.. method:: proc _owned._readWriteHelper( f) throws + +.. method:: proc _owned.deserialize( reader, ref deserializer) throws + +.. function:: operator :(in x: owned(class), type t: owned(class?)) where isSubtype(x.chpl_t, _to_nonnil(t.chpl_t)) + +.. function:: operator :(in x: owned(class?), type t: owned(class?)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: owned(class), type t: owned(class)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: owned(class?), type t: owned(class)) throws where isSubtype(_to_nonnil(x.chpl_t), t.chpl_t) + +.. function:: operator :(ref x: owned(class?), type t: owned(class)) throws where isProperSubtype(t.chpl_t, _to_nonnil(x.chpl_t)) + +.. function:: operator :(ref x: owned(class), type t: owned(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(ref x: owned(class?), type t: owned(class?)) where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(ref x: owned(class), type t: owned(class?)) where isProperSubtype(_to_nonnil(t.chpl_t), x.chpl_t) + +.. function:: operator :( x: _nilType, type t: _owned) + +.. function:: proc postfix!(const ref x: _owned) + diff --git a/docs/internal/_sources/modules/internal/PrintModuleInitOrder.rst.txt b/docs/internal/_sources/modules/internal/PrintModuleInitOrder.rst.txt new file mode 100644 index 000000000..91e8b192e --- /dev/null +++ b/docs/internal/_sources/modules/internal/PrintModuleInitOrder.rst.txt @@ -0,0 +1,32 @@ +.. default-domain:: chpl + +.. module:: PrintModuleInitOrder + :noindex: + +PrintModuleInitOrder +==================== +**Usage** + +.. code-block:: chapel + + use PrintModuleInitOrder; + + +or + +.. code-block:: chapel + + import PrintModuleInitOrder; + +.. data:: config const printModuleInitOrder = false + + .. warning:: + + The variable 'printModuleInitOrder' is unstable and its interface is subject to change in the future + +.. data:: var moduleInitLevel = 2: int(32) + +.. function:: proc printModuleInit( s1: chpl_c_string, s2: chpl_c_string, len: int) + +.. function:: proc initPrint() + diff --git a/docs/internal/_sources/modules/internal/SharedObject.rst.txt b/docs/internal/_sources/modules/internal/SharedObject.rst.txt new file mode 100644 index 000000000..e385b4822 --- /dev/null +++ b/docs/internal/_sources/modules/internal/SharedObject.rst.txt @@ -0,0 +1,220 @@ +.. default-domain:: chpl + +.. module:: SharedObject + :noindex: + +SharedObject +============ +**Usage** + +.. code-block:: chapel + + use SharedObject; + + +or + +.. code-block:: chapel + + import SharedObject; + + + +.. class:: ReferenceCount + + .. attribute:: var strongCount: atomic(int) + + .. attribute:: var totalCount: atomic(int) + + .. method:: proc init() + + .. method:: proc retain() + + .. method:: proc releaseStrong() + + .. method:: proc releaseTotal() + + .. method:: proc tryRetainWeak(ref expected: int) + + attempt to atomically increment the strong reference count + + - if the current strong-count does not match 'expected', then 'expected' + is updated to whatever the current value is, and 'false' is returned + - if they do match, the strong-count is incremented, the total-count is + incremented, and 'true' is returned. + + This method is used to safely upgrade a 'weak' to a 'shared' + reference. This is done by calling the method in a while-loop that can + either fail if the expected value drops to zero (i.e., the last 'shared' + was dropped by someone else during the upgrade attempt), or loop until + the value can be incremented safely (s.t. there are no conflicts + between concurrent upgrades) + + + .. method:: proc releaseWeak() + + .. method:: proc incrementWeak() + +.. record:: _shared : writeSerializable, readDeserializable + + + :type:`shared` manages the deletion of a class instance in a way + that supports multiple owners of the class instance. + + This is currently implemented with task-safe reference counting. + + + .. attribute:: type chpl_t + + .. attribute:: var chpl_p: __primitive("to nilable class", chpl_t) + + .. attribute:: var chpl_pn: unmanaged(ReferenceCount?) + +.. method:: proc _shared.init(type chpl_t) + +.. method:: proc _shared.init( p: borrowed) + +.. method:: proc _shared.init( p: unmanaged) + +.. method:: proc _shared.init( p: ?T) where isClass(T) == false && isSubtype(T, _shared) == false && isIterator(p) == false + +.. method:: proc _shared.init(in take: owned) + +.. method:: proc _shared.init( _private: bool, type t, ref src: _shared) + + + Private move-initializer for use in coercions, + only makes sense when `src` was already copied in in intent. + + +.. method:: proc _shared.init( _private: bool, type t, p, pn) + + Private initializer for casts. This one increments the reference + count if the stored pointer is not nil. + +.. method:: proc _shared.init( _private: bool, p: unmanaged, pn) + + + Private initializer for casting from weak to shared. + assumes the shared reference count in 'pn' has already been incremented + + +.. method:: proc _shared.init=(in take: owned) + +.. method:: proc _shared.init=(const ref src: _shared) + + + Copy-initializer. Creates a new :type:`shared` + that refers to the same class instance as `src`. + These will share responsibility for managing the instance. + + +.. method:: proc _shared.init=( src: borrowed) + +.. method:: proc _shared.init=( src: unmanaged) + +.. method:: proc _shared.init=( src: _nilType) + +.. method:: proc ref _shared.doClear() + +.. method:: proc type _shared.adopt( source) + +.. method:: proc type _shared.adopt(in obj: owned) + + + Changes the memory management strategy of the argument from `owned` + to `shared`, taking over the ownership of the argument. + The result type preserves nilability of the argument type. + If the argument is non-nilable, it must be recognized by the compiler + as an expiring value. + + +.. method:: proc type _shared.adopt(in obj: unmanaged) + + + Starts managing the argument class instance `obj` + using the `shared` memory management strategy. + The result type preserves nilability of the argument type. + + It is an error to directly delete the class instance + after passing it to `shared.adopt()`. + + +.. method:: proc ref _shared.deinit() + + + The deinitializer for :type:`shared` will destroy the class + instance once there are no longer any copies of this + :type:`shared` that refer to it. + + +.. method:: proc _shared.borrow() + + + Return the object managed by this :type:`shared` without + impacting its lifetime at all. It is an error to use the + value returned by this function after the last :type:`shared` + goes out of scope or deletes the contained class instance + for another reason, including calls to + `=`, or ``shared.retain`` when this is the last :type:`shared` + referring to the instance. + In some cases such errors are caught at compile-time. + + +.. method:: proc _shared.downgrade() + + .. warning:: + + The `weak` type is experimental; expect this method to change in the future. + + Create a :record:`~WeakPointer.weak` reference to this object + +.. function:: operator = (ref lhs: _shared, rhs: _shared) where !(isNonNilableClass(lhs) && isNilableClass(rhs)) + + + Assign one :type:`shared` to another. + Deletes the object managed by ``lhs`` if there are + no other :type:`shared` referring to it. On return, + ``lhs`` will refer to the same object as ``rhs``. + + +.. function:: operator = (ref lhs: _shared, in rhs: owned) + +.. function:: operator = (ref lhs: shared, rhs: _nilType) + +.. function:: operator <=>(ref lhs: _shared, ref rhs: _shared) + + + Swap two :type:`shared` objects. + + +.. function:: proc chpl__autoDestroy(ref x: _shared) + +.. method:: proc ref _shared.deserialize( reader, ref deserializer) throws + +.. method:: proc _shared.serialize( writer, ref serializer) throws + +.. method:: proc _shared._readWriteHelper( f) throws + +.. function:: operator :(const ref x: _shared, type t: borrowed) where isSubtype(t, x.chpl_t) + +.. function:: operator :(in x: shared(class), type t: shared(class?)) where isSubtype(x.chpl_t, t.chpl_t: class) + +.. function:: operator :(in x: shared(class?), type t: shared(class?)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: shared(class), type t: shared(class)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: shared(class?), type t: shared(class)) throws where isSubtype(x.chpl_t: class, t.chpl_t) + +.. function:: operator :(const ref x: shared(class?), type t: shared(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t: class) + +.. function:: operator :(const ref x: shared(class), type t: shared(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(const ref x: shared(class?), type t: shared(class?)) where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(const ref x: shared(class), type t: shared(class?)) where isProperSubtype(t.chpl_t, x.chpl_t: class?) + +.. function:: operator :( x: _nilType, type t: _shared) + +.. function:: proc postfix!( x: _shared) + diff --git a/docs/internal/_sources/modules/internal/String.rst.txt b/docs/internal/_sources/modules/internal/String.rst.txt new file mode 100644 index 000000000..3cc1983b2 --- /dev/null +++ b/docs/internal/_sources/modules/internal/String.rst.txt @@ -0,0 +1,1169 @@ +.. default-domain:: chpl + +.. module:: String + :noindex: + +String +====== +**Usage** + +.. code-block:: chapel + + use String; + + +or + +.. code-block:: chapel + + import String; + +**Submodules** + +.. toctree:: + :maxdepth: 1 + :glob: + + String/* + + +.. type:: string + +supports the following methods: + + +.. data:: config param useCachedNumCodepoints = true + +.. record:: byteIndex : writeSerializable + + .. attribute:: var _bindex: int + + .. method:: proc init() + + .. method:: proc init( i: int) + + .. method:: proc init=( other: byteIndex) + + .. method:: proc init=( i: int) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: operator :( val: byteIndex, type t: string) + +.. record:: codepointIndex : writeSerializable + + .. attribute:: var _cpindex: int + + .. method:: proc init() + + .. method:: proc init( i: int) + + .. method:: proc init=( i: int) + + .. method:: proc init=( cpi: codepointIndex) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: operator :( val: codepointIndex, type t: string) + +.. function:: proc chpl_build_bounded_range( low: byteIndex, high: byteIndex) + +.. function:: proc chpl_build_bounded_range( low: codepointIndex, high: codepointIndex) + +.. function:: proc chpl_build_low_bounded_range( low: byteIndex) + +.. function:: proc chpl_build_low_bounded_range( low: codepointIndex) + +.. function:: proc chpl_build_high_bounded_range( high: byteIndex) + +.. function:: proc chpl_build_high_bounded_range( high: codepointIndex) + +.. function:: proc chpl__rangeStrideType(type idxType: byteIndex) type + +.. function:: proc chpl__rangeStrideType(type idxType: codepointIndex) type + +.. function:: proc chpl__rangeUnsignedType(type idxType: byteIndex) type + +.. function:: proc chpl__rangeUnsignedType(type idxType: codepointIndex) type + +.. function:: proc chpl__idxToInt( i: byteIndex) + +.. function:: proc chpl__idxToInt( i: codepointIndex) + +.. function:: proc chpl__intToIdx(type idxType: byteIndex, i: int) + +.. function:: proc chpl__intToIdx(type idxType: codepointIndex, i: int) + +.. method:: operator byteIndex.>( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.>( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.>( x: byteIndex, y: int) + +.. method:: operator codepointIndex.>( x: codepointIndex, y: int) + +.. method:: operator byteIndex.>( x: int, y: byteIndex) + +.. method:: operator codepointIndex.>( x: int, y: codepointIndex) + +.. method:: operator byteIndex.+( x: byteIndex, y: int) + +.. method:: operator codepointIndex.+( x: codepointIndex, y: int) + +.. method:: operator byteIndex.+( x: int, y: byteIndex) + +.. method:: operator codepointIndex.+( x: int, y: codepointIndex) + +.. function:: operator +( x: bufferType, y: byteIndex) + +.. method:: operator byteIndex.-( x: byteIndex, y: int) + +.. method:: operator codepointIndex.-( x: codepointIndex, y: int) + +.. method:: operator byteIndex.-( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.-( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.<( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<( x: byteIndex, y: int) + +.. method:: operator codepointIndex.<( x: codepointIndex, y: int) + +.. method:: operator byteIndex.<( x: int, y: byteIndex) + +.. method:: operator codepointIndex.<( x: int, y: codepointIndex) + +.. method:: operator byteIndex.>=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.>=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.>=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.>=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.>=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.>=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.<=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.<=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.<=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.<=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.<=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.==( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.==( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.==( x: byteIndex, y: int) + +.. method:: operator codepointIndex.==( x: codepointIndex, y: int) + +.. method:: operator byteIndex.==( x: int, y: byteIndex) + +.. method:: operator codepointIndex.==( x: int, y: codepointIndex) + +.. method:: operator byteIndex.!=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.!=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.!=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.!=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.!=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.!=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.!( x: byteIndex) + +.. method:: operator codepointIndex.!( x: codepointIndex) + +.. function:: proc _cond_test( x: byteIndex) + +.. function:: proc _cond_test( x: codepointIndex) + +.. method:: proc type string.createBorrowingBuffer( x: string) : string + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the internal buffer of another string. If + the buffer is freed before the string returned from this function, accessing + it is undefined behavior. + + :arg x: Object to borrow the buffer from + :type x: `string` + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: c_ptr(?t), length = strLen(x)) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptr`. If + the buffer is freed before the :type:`string` returned from this function, accessing + it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: c_ptrConst(?t), length = strLen(x)) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptrConst`. If + the buffer is freed before the :type:`string` returned from this function, accessing + it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. function:: proc chpl_createStringWithLiteral( buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int, numCodepoints: int) : string + +.. method:: proc type string.createBorrowingBuffer( x: c_ptr(?t), length: int, size: int) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptr`. If + the buffer is freed before the :type:`string` returned from this function, + accessing it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: chpl_c_string, length = x.size) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createBorrowingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type string.createAdoptingBuffer( x: c_ptr(?t), length = strLen(x)) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptr`. The buffer will be freed when the :type:`string` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is + the caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createAdoptingBuffer( x: chpl_c_string, length = x.size) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createAdoptingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type string.createAdoptingBuffer( x: c_ptrConst(?t), length = strLen(x)) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptrConst`. The buffer will be freed when the :type:`string` + is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is the + caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createAdoptingBuffer( x: c_ptr(?t), length: int, size: int) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptr`. The buffer will be freed when the :type:`string` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is the + caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: c_ptrConst(?t), length = strLen(x), policy = decodePolicy.strict) : string throws + + + Creates a new :type:`string` by creating a copy of the memory allocated for a :class:`~CTypes.c_ptrConst`. + + :arg x: The buffer to copy + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x` in bytes, excluding the optional terminating null byte. + :type length: `int` + + :arg policy: - `decodePolicy.strict` raises an error + - `decodePolicy.replace` replaces the malformed character with + UTF-8 replacement character + - `decodePolicy.drop` drops the data silently + - `decodePolicy.escape` escapes each illegal byte with private + use codepoints + + :throws: A :class:`~Errors.DecodeError`: if `decodePolicy.strict` is + passed to the `policy` argument and `x` contains non-UTF-8 characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: c_ptr(?t), length = strLen(x), size = length + 1, policy = decodePolicy.strict) : string throws + + + Creates a new :type:`string` by creating a copy of a buffer. + + :arg x: The buffer to copy + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes. This argument is + ignored by this function. + :type size: `int` + + :arg policy: `decodePolicy.strict` raises an error, `decodePolicy.replace` + replaces the malformed character with UTF-8 replacement + character, `decodePolicy.drop` drops the data silently, + `decodePolicy.escape` escapes each illegal byte with private + use codepoints + + :throws: A :class:`~Errors.DecodeError`: if `decodePolicy.strict` is + passed to the `policy` argument and `x` contains non-UTF-8 characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: chpl_c_string, length = x.size, policy = decodePolicy.strict) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createCopyingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. record:: _string : writeSerializable + + .. attribute:: var buffLen: int = 0 + + .. attribute:: var buffSize: int = 0 + + .. attribute:: var cachedNumCodepoints: int = 0 + + .. attribute:: var buff: bufferType = nil + + .. attribute:: var isOwned: bool = true + + .. attribute:: var hasEscapes: bool = false + + .. attribute:: var locale_id = chpl_nodeID + + .. method:: proc init() + + .. method:: proc init=( s: string) + + .. method:: proc ref deinit() + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc isASCII() + + .. method:: proc byteIndices + + .. method:: proc _cpIndexLenHelpNoAdjustment(ref start: int) + + .. itermethod:: iter _cpIndexLen( start = 0: byteIndex) + + + Iterates over the string Unicode character by Unicode character, + and includes the byte index and byte length of each character. + Skip characters that begin prior to the specified starting byte index. + Assume we may accidentally start in the middle of a multibyte character, + but the string is correctly encoded UTF-8. + + + .. itermethod:: iter _indexLen( start = 0: byteIndex) + + + Iterates over the string Unicode character by Unicode character, + and returns the byte index and byte length of each character. + Skip characters that begin prior to the specified starting byte index. + Assume we may accidentally start in the middle of a multibyte character, + but the string is correctly encoded UTF-8. + + + .. method:: proc substring( i: int) + + .. method:: proc substring( r: range) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc doSplitWSUTF8Help( maxsplit: int, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex) + + .. itermethod:: iter doSplitWSUTF8( maxsplit: int) + + .. method:: proc doSearchUTF8( pattern: string, indices: range(?), param count: bool, param fromLeft: bool = true) + + .. method:: proc join(const ref x: [] string) : string + + .. method:: proc join(const ref x) where isTuple(x) + + .. method:: proc join( ir: _iteratorRecord) : string + + .. method:: proc capitalize() : string + + + :returns: A new :type:`string` with the first character in uppercase (if it is a + case character), and all other case characters in lowercase. + Uncased characters are copied with no changes. + + +.. method:: proc const string.size : int + + + :returns: The number of codepoints in the :type:`string`. + + +.. method:: proc string.indices : range + + + :returns: The indices that can be used to index into the :type:`string` + (i.e., the range ``0.. 0``, remove ``columns`` leading whitespace characters + from each line. Tabs are not considered whitespace when ``columns > 0``, + so only leading spaces are removed. + + :arg columns: The number of columns of indentation to remove. Infer + common leading whitespace if ``columns == 0``. + + :arg ignoreFirst: When ``true``, ignore first line when determining the + common leading whitespace, and make no changes to the + first line. + + :returns: A new :type:`string` with indentation removed. + + +.. method:: proc string.isUpper() : bool + + + Checks if all the characters in the :type:`string` are either uppercase (A-Z) or + uncased (not a letter). + + :returns: * `true` -- if the string contains at least one uppercase character and no lowercase characters, ignoring uncased characters. + * `false` -- otherwise + + +.. method:: proc string.isLower() : bool + + + Checks if all the characters in the :type:`string` are either lowercase (a-z) or + uncased (not a letter). + + :returns: * `true` -- when there are no uppercase characters in the string. + * `false` -- otherwise + + +.. method:: proc string.isSpace() : bool + + + Checks if all the characters in the :type:`string` are whitespace (' ', '\\t', + '\\n', '\\v', '\\f', '\\r'). + + :returns: * `true` -- when all the characters are whitespace. + * `false` -- otherwise + + +.. method:: proc string.isAlpha() : bool + + + Checks if all the characters in the :type:`string` are alphabetic (a-zA-Z). + + :returns: * `true` -- when the characters are alphabetic. + * `false` -- otherwise + + +.. method:: proc string.isDigit() : bool + + + Checks if all the characters in the :type:`string` are digits (0-9). + + :returns: * `true` -- when the characters are digits. + * `false` -- otherwise + + +.. method:: proc string.isAlnum() : bool + + + Checks if all the characters in the :type:`string` are alphanumeric (a-zA-Z0-9). + + :returns: * `true` -- when the characters are alphanumeric. + * `false` -- otherwise + + +.. method:: proc string.isPrintable() : bool + + + Checks if all the characters in the :type:`string` are printable. + + :returns: * `true` -- when the characters are printable. + * `false` -- otherwise + + +.. method:: proc string.isTitle() : bool + + + Checks if all uppercase characters are preceded by uncased characters, + and if all lowercase characters are preceded by cased characters. + + :returns: * `true` -- when the condition described above is met. + * `false` -- otherwise + + +.. method:: proc string.toLower() : string + + + :returns: A new :type:`string` with all uppercase characters replaced with their + lowercase counterpart. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: proc string.toUpper() : string + + + :returns: A new :type:`string` with all lowercase characters replaced with their + uppercase counterpart. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: proc string.toTitle() : string + + + :returns: A new :type:`string` with all cased characters following an uncased + character converted to uppercase, and all cased characters + following another cased character converted to lowercase. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: operator byteIndex. = (ref lhs: byteIndex, rhs: int) + + + Copies the int `rhs` into the byteIndex `lhs`. + + +.. method:: operator byteIndex. = (ref lhs: byteIndex, const ref rhs: byteIndex) + +.. method:: operator codepointIndex. = (ref lhs: codepointIndex, rhs: int) + + + Copies the int `rhs` into the codepointIndex `lhs`. + + +.. method:: operator codepointIndex. = (ref lhs: codepointIndex, const ref rhs: codepointIndex) + +.. function:: operator = (ref lhs: string, rhs: string) : void + + + Copies the :type:`string` `rhs` into the :type:`string` `lhs`. + + +.. method:: operator string.+( s0: string, s1: string) : string + + + :returns: A new :type:`string` which is the result of concatenating `s0` and `s1` + + +.. function:: operator *( s: string, n: integral) : string + + + :returns: A new :type:`string` which is the result of repeating `s` `n` times. + If `n` is less than or equal to 0, an empty :type:`string` is returned. + + The operation is commutative. + For example: + + .. code-block:: chapel + + writeln("Hello! " * 3); + or + writeln(3 * "Hello! "); + + Results in:: + + Hello! Hello! Hello! + + +.. function:: operator *( n: integral, s: string) + +.. method:: operator string.==(param s0: string, param s1: string) param + +.. method:: operator string.!=(param s0: string, param s1: string) param + +.. method:: operator string.<=(param a: string, param b: string) param + +.. method:: operator string.>=(param a: string, param b: string) param + +.. method:: operator string.<(param a: string, param b: string) param + +.. method:: operator string.>(param a: string, param b: string) param + +.. method:: operator string.+(param a: string, param b: string) param + +.. method:: proc param string.toByte() param: uint(8) + +.. method:: proc param string.byte(param i: int) param: uint(8) + +.. method:: proc param string.this(param i: int) param: string + +.. method:: proc param string.item(param i: int) param: string + +.. method:: proc param string.numBytes param + +.. method:: proc param string.numCodepoints param + +.. method:: proc param string.size param + +.. function:: proc _string_contains(param a: string, param b: string) param + +.. method:: operator string.+=(ref lhs: string, const ref rhs: string) : void + + + Appends the string `rhs` to the string `lhs`. + + +.. method:: proc ref string.appendCodepointValues(codepoints: int ...) : void + + .. warning:: + + 'string.appendCodepointValues' is unstable and may change in the future + + + Appends the codepoint values passed to the :type:`string` `this`. + + Any argument not in 0..0x10FFFF is not valid Unicode codepoint. + This function will append the replacement character 0xFFFD instead of + such invalid arguments. + + +.. method:: operator string.==( a: string, b: string) : bool + +.. method:: operator string.!=( a: string, b: string) : bool + +.. method:: operator string.<( a: string, b: string) : bool + +.. method:: operator string.>( a: string, b: string) : bool + +.. method:: operator string.<=( a: string, b: string) : bool + +.. method:: operator string.>=( a: string, b: string) : bool + +.. type:: type wint_t = int(32) + +.. function:: proc codepointToString( i: int(32)) : string + + + :returns: A new :type:`string` storing the complete multibyte character sequence + that corresponds to the codepoint value `i`. + + +.. function:: operator :( cs: c_string, type t: string) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'string.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + +.. function:: operator :( cpi: byteIndex, type t: int) + +.. function:: operator :( i: int, type t: byteIndex) + +.. function:: operator :( cpi: codepointIndex, type t: int) + +.. function:: operator :( i: int, type t: codepointIndex) + +.. method:: proc string.hash() : uint + +.. method:: operator string.<=>(ref x: string, ref y: string) + diff --git a/docs/internal/_sources/modules/internal/String/NVStringFactory.rst.txt b/docs/internal/_sources/modules/internal/String/NVStringFactory.rst.txt new file mode 100644 index 000000000..70e2475f4 --- /dev/null +++ b/docs/internal/_sources/modules/internal/String/NVStringFactory.rst.txt @@ -0,0 +1,26 @@ +.. default-domain:: chpl + +.. module:: NVStringFactory + :noindex: + +NVStringFactory +=============== +**Usage** + +.. code-block:: chapel + + use String.NVStringFactory; + + +or + +.. code-block:: chapel + + import String.NVStringFactory; + +.. function:: proc chpl_createStringWithNewBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + +.. function:: proc chpl_createStringWithBorrowedBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + +.. function:: proc chpl_createStringWithOwnedBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + diff --git a/docs/internal/_sources/modules/internal/StringCasts.rst.txt b/docs/internal/_sources/modules/internal/StringCasts.rst.txt new file mode 100644 index 000000000..890deb010 --- /dev/null +++ b/docs/internal/_sources/modules/internal/StringCasts.rst.txt @@ -0,0 +1,64 @@ +.. default-domain:: chpl + +.. module:: StringCasts + :noindex: + +StringCasts +=========== +**Usage** + +.. code-block:: chapel + + use StringCasts; + + +or + +.. code-block:: chapel + + import StringCasts; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: operator :( x: bool, type t: string) + +.. function:: operator :( x: string, type t: bool) throws + +.. function:: operator :( x: ?k*?t, type s: string) where isPrimitiveType(t) && isHomogeneousTupleType(x.type) + +.. function:: operator :( x: integral, type t: string) + +.. function:: operator :( x: string, type t: integral) throws + +.. function:: proc _real_cast_helper( x: real(64), param isImag: bool) : string + +.. function:: operator :( x: chpl_anyreal, type t: string) + +.. function:: operator :( x: chpl_anyimag, type t: string) + +.. function:: operator :( x: string, type t: chpl_anyreal) throws + +.. function:: operator :( x: string, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_anycomplex, type t: string) + +.. function:: operator :( x: string, type t: chpl_anycomplex) throws + diff --git a/docs/internal/_sources/modules/internal/startInitCommDiags.rst.txt b/docs/internal/_sources/modules/internal/startInitCommDiags.rst.txt new file mode 100644 index 000000000..3722fc0e8 --- /dev/null +++ b/docs/internal/_sources/modules/internal/startInitCommDiags.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: startInitCommDiags + :noindex: + +startInitCommDiags +================== +**Usage** + +.. code-block:: chapel + + use startInitCommDiags; + + +or + +.. code-block:: chapel + + import startInitCommDiags; + diff --git a/docs/internal/_sources/modules/internal/stopInitCommDiags.rst.txt b/docs/internal/_sources/modules/internal/stopInitCommDiags.rst.txt new file mode 100644 index 000000000..afb26d565 --- /dev/null +++ b/docs/internal/_sources/modules/internal/stopInitCommDiags.rst.txt @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: stopInitCommDiags + :noindex: + +stopInitCommDiags +================= +**Usage** + +.. code-block:: chapel + + use stopInitCommDiags; + + +or + +.. code-block:: chapel + + import stopInitCommDiags; + diff --git a/docs/internal/_static/basic.css b/docs/internal/_static/basic.css new file mode 100644 index 000000000..30fee9d0f --- /dev/null +++ b/docs/internal/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/internal/_static/css/badge_only.css b/docs/internal/_static/css/badge_only.css new file mode 100644 index 000000000..c718cee44 --- /dev/null +++ b/docs/internal/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} \ No newline at end of file diff --git a/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff b/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 000000000..6cb600001 Binary files /dev/null and b/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff2 b/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 000000000..7059e2314 Binary files /dev/null and b/docs/internal/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff b/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 000000000..f815f63f9 Binary files /dev/null and b/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff2 b/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 000000000..f2c76e5bd Binary files /dev/null and b/docs/internal/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/docs/internal/_static/css/fonts/fontawesome-webfont.eot b/docs/internal/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 000000000..e9f60ca95 Binary files /dev/null and b/docs/internal/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/docs/internal/_static/css/fonts/fontawesome-webfont.svg b/docs/internal/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 000000000..855c845e5 --- /dev/null +++ b/docs/internal/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/internal/_static/css/fonts/fontawesome-webfont.ttf b/docs/internal/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 000000000..35acda2fa Binary files /dev/null and b/docs/internal/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/docs/internal/_static/css/fonts/fontawesome-webfont.woff b/docs/internal/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 000000000..400014a4b Binary files /dev/null and b/docs/internal/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/docs/internal/_static/css/fonts/fontawesome-webfont.woff2 b/docs/internal/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..4d13fc604 Binary files /dev/null and b/docs/internal/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/docs/internal/_static/css/fonts/lato-bold-italic.woff b/docs/internal/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 000000000..88ad05b9f Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-bold-italic.woff differ diff --git a/docs/internal/_static/css/fonts/lato-bold-italic.woff2 b/docs/internal/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 000000000..c4e3d804b Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/docs/internal/_static/css/fonts/lato-bold.woff b/docs/internal/_static/css/fonts/lato-bold.woff new file mode 100644 index 000000000..c6dff51f0 Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-bold.woff differ diff --git a/docs/internal/_static/css/fonts/lato-bold.woff2 b/docs/internal/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 000000000..bb195043c Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-bold.woff2 differ diff --git a/docs/internal/_static/css/fonts/lato-normal-italic.woff b/docs/internal/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 000000000..76114bc03 Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-normal-italic.woff differ diff --git a/docs/internal/_static/css/fonts/lato-normal-italic.woff2 b/docs/internal/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 000000000..3404f37e2 Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/docs/internal/_static/css/fonts/lato-normal.woff b/docs/internal/_static/css/fonts/lato-normal.woff new file mode 100644 index 000000000..ae1307ff5 Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-normal.woff differ diff --git a/docs/internal/_static/css/fonts/lato-normal.woff2 b/docs/internal/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 000000000..3bf984332 Binary files /dev/null and b/docs/internal/_static/css/fonts/lato-normal.woff2 differ diff --git a/docs/internal/_static/css/theme.css b/docs/internal/_static/css/theme.css new file mode 100644 index 000000000..19a446a0e --- /dev/null +++ b/docs/internal/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search>a:hover{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/docs/internal/_static/doctools.js b/docs/internal/_static/doctools.js new file mode 100644 index 000000000..d06a71d75 --- /dev/null +++ b/docs/internal/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs/internal/_static/documentation_options.js b/docs/internal/_static/documentation_options.js new file mode 100644 index 000000000..d1f229197 --- /dev/null +++ b/docs/internal/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.0.1', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs/internal/_static/file.png b/docs/internal/_static/file.png new file mode 100644 index 000000000..a858a410e Binary files /dev/null and b/docs/internal/_static/file.png differ diff --git a/docs/internal/_static/js/badge_only.js b/docs/internal/_static/js/badge_only.js new file mode 100644 index 000000000..526d7234b --- /dev/null +++ b/docs/internal/_static/js/badge_only.js @@ -0,0 +1 @@ +!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=4)}({4:function(e,t,r){}}); \ No newline at end of file diff --git a/docs/internal/_static/js/html5shiv-printshiv.min.js b/docs/internal/_static/js/html5shiv-printshiv.min.js new file mode 100644 index 000000000..2b43bd062 --- /dev/null +++ b/docs/internal/_static/js/html5shiv-printshiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3-pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=y.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=y.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),y.elements=c+" "+a,j(b)}function f(a){var b=x[a[v]];return b||(b={},w++,a[v]=w,x[w]=b),b}function g(a,c,d){if(c||(c=b),q)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():u.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||t.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),q)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return y.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(y,b.frag)}function j(a){a||(a=b);var d=f(a);return!y.shivCSS||p||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),q||i(a,d),a}function k(a){for(var b,c=a.getElementsByTagName("*"),e=c.length,f=RegExp("^(?:"+d().join("|")+")$","i"),g=[];e--;)b=c[e],f.test(b.nodeName)&&g.push(b.applyElement(l(b)));return g}function l(a){for(var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(A+":"+a.nodeName);d--;)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function m(a){for(var b,c=a.split("{"),e=c.length,f=RegExp("(^|[\\s,>+~])("+d().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),g="$1"+A+"\\:$2";e--;)b=c[e]=c[e].split("}"),b[b.length-1]=b[b.length-1].replace(f,g),c[e]=b.join("}");return c.join("{")}function n(a){for(var b=a.length;b--;)a[b].removeNode()}function o(a){function b(){clearTimeout(g._removeSheetTimer),d&&d.removeNode(!0),d=null}var d,e,g=f(a),h=a.namespaces,i=a.parentWindow;return!B||a.printShived?a:("undefined"==typeof h[A]&&h.add(A),i.attachEvent("onbeforeprint",function(){b();for(var f,g,h,i=a.styleSheets,j=[],l=i.length,n=Array(l);l--;)n[l]=i[l];for(;h=n.pop();)if(!h.disabled&&z.test(h.media)){try{f=h.imports,g=f.length}catch(o){g=0}for(l=0;g>l;l++)n.push(f[l]);try{j.push(h.cssText)}catch(o){}}j=m(j.reverse().join("")),e=k(a),d=c(a,j)}),i.attachEvent("onafterprint",function(){n(e),clearTimeout(g._removeSheetTimer),g._removeSheetTimer=setTimeout(b,500)}),a.printShived=!0,a)}var p,q,r="3.7.3",s=a.html5||{},t=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,u=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,v="_html5shiv",w=0,x={};!function(){try{var a=b.createElement("a");a.innerHTML="",p="hidden"in a,q=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){p=!0,q=!0}}();var y={elements:s.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:r,shivCSS:s.shivCSS!==!1,supportsUnknownElements:q,shivMethods:s.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=y,j(b);var z=/^$|\b(?:all|print)\b/,A="html5shiv",B=!q&&function(){var c=b.documentElement;return!("undefined"==typeof b.namespaces||"undefined"==typeof b.parentWindow||"undefined"==typeof c.applyElement||"undefined"==typeof c.removeNode||"undefined"==typeof a.attachEvent)}();y.type+=" print",y.shivPrint=o,o(b),"object"==typeof module&&module.exports&&(module.exports=y)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/internal/_static/js/html5shiv.min.js b/docs/internal/_static/js/html5shiv.min.js new file mode 100644 index 000000000..cd1c674f5 --- /dev/null +++ b/docs/internal/_static/js/html5shiv.min.js @@ -0,0 +1,4 @@ +/** +* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3-pre",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document); \ No newline at end of file diff --git a/docs/internal/_static/js/theme.js b/docs/internal/_static/js/theme.js new file mode 100644 index 000000000..1fddb6ee4 --- /dev/null +++ b/docs/internal/_static/js/theme.js @@ -0,0 +1 @@ +!function(n){var e={};function t(i){if(e[i])return e[i].exports;var o=e[i]={i:i,l:!1,exports:{}};return n[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=n,t.c=e,t.d=function(n,e,i){t.o(n,e)||Object.defineProperty(n,e,{enumerable:!0,get:i})},t.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},t.t=function(n,e){if(1&e&&(n=t(n)),8&e)return n;if(4&e&&"object"==typeof n&&n&&n.__esModule)return n;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:n}),2&e&&"string"!=typeof n)for(var o in n)t.d(i,o,function(e){return n[e]}.bind(null,o));return i},t.n=function(n){var e=n&&n.__esModule?function(){return n.default}:function(){return n};return t.d(e,"a",e),e},t.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},t.p="",t(t.s=0)}([function(n,e,t){t(1),n.exports=t(3)},function(n,e,t){(function(){var e="undefined"!=typeof window?window.jQuery:t(2);n.exports.ThemeNav={navBar:null,win:null,winScroll:!1,winResize:!1,linkScroll:!1,winPosition:0,winHeight:null,docHeight:null,isRunning:!1,enable:function(n){var t=this;void 0===n&&(n=!0),t.isRunning||(t.isRunning=!0,e((function(e){t.init(e),t.reset(),t.win.on("hashchange",t.reset),n&&t.win.on("scroll",(function(){t.linkScroll||t.winScroll||(t.winScroll=!0,requestAnimationFrame((function(){t.onScroll()})))})),t.win.on("resize",(function(){t.winResize||(t.winResize=!0,requestAnimationFrame((function(){t.onResize()})))})),t.onResize()})))},enableSticky:function(){this.enable(!0)},init:function(n){n(document);var e=this;this.navBar=n("div.wy-side-scroll:first"),this.win=n(window),n(document).on("click","[data-toggle='wy-nav-top']",(function(){n("[data-toggle='wy-nav-shift']").toggleClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift")})).on("click",".wy-menu-vertical .current ul li a",(function(){var t=n(this);n("[data-toggle='wy-nav-shift']").removeClass("shift"),n("[data-toggle='rst-versions']").toggleClass("shift"),e.toggleCurrent(t),e.hashChange()})).on("click","[data-toggle='rst-current-version']",(function(){n("[data-toggle='rst-versions']").toggleClass("shift-up")})),n("table.docutils:not(.field-list,.footnote,.citation)").wrap("
"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs/internal/_static/minus.png b/docs/internal/_static/minus.png new file mode 100644 index 000000000..d96755fda Binary files /dev/null and b/docs/internal/_static/minus.png differ diff --git a/docs/internal/_static/plus.png b/docs/internal/_static/plus.png new file mode 100644 index 000000000..7107cec93 Binary files /dev/null and b/docs/internal/_static/plus.png differ diff --git a/docs/internal/_static/pygments.css b/docs/internal/_static/pygments.css new file mode 100644 index 000000000..0d49244ed --- /dev/null +++ b/docs/internal/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/internal/_static/searchtools.js b/docs/internal/_static/searchtools.js new file mode 100644 index 000000000..7918c3fab --- /dev/null +++ b/docs/internal/_static/searchtools.js @@ -0,0 +1,574 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs/internal/_static/sphinx_highlight.js b/docs/internal/_static/sphinx_highlight.js new file mode 100644 index 000000000..8a96c69a1 --- /dev/null +++ b/docs/internal/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/internal/build/doctrees/environment.pickle b/docs/internal/build/doctrees/environment.pickle new file mode 100644 index 000000000..b1654e82d Binary files /dev/null and b/docs/internal/build/doctrees/environment.pickle differ diff --git a/docs/internal/build/doctrees/index.doctree b/docs/internal/build/doctrees/index.doctree new file mode 100644 index 000000000..44c87af6e Binary files /dev/null and b/docs/internal/build/doctrees/index.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ArrayViewRankChange.doctree b/docs/internal/build/doctrees/modules/internal/ArrayViewRankChange.doctree new file mode 100644 index 000000000..751d1793a Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ArrayViewRankChange.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ArrayViewReindex.doctree b/docs/internal/build/doctrees/modules/internal/ArrayViewReindex.doctree new file mode 100644 index 000000000..b268f11d8 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ArrayViewReindex.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ArrayViewSlice.doctree b/docs/internal/build/doctrees/modules/internal/ArrayViewSlice.doctree new file mode 100644 index 000000000..7c8f1ac13 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ArrayViewSlice.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/Atomics.doctree b/docs/internal/build/doctrees/modules/internal/Atomics.doctree new file mode 100644 index 000000000..3c8da8743 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/Atomics.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/AtomicsCommon.doctree b/docs/internal/build/doctrees/modules/internal/AtomicsCommon.doctree new file mode 100644 index 000000000..aa6105542 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/AtomicsCommon.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ByteBufferHelpers.doctree b/docs/internal/build/doctrees/modules/internal/ByteBufferHelpers.doctree new file mode 100644 index 000000000..b64f4d07b Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ByteBufferHelpers.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/Bytes.doctree b/docs/internal/build/doctrees/modules/internal/Bytes.doctree new file mode 100644 index 000000000..bb4d018de Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/Bytes.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/BytesCasts.doctree b/docs/internal/build/doctrees/modules/internal/BytesCasts.doctree new file mode 100644 index 000000000..0f908b896 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/BytesCasts.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/BytesStringCommon.doctree b/docs/internal/build/doctrees/modules/internal/BytesStringCommon.doctree new file mode 100644 index 000000000..5c64ba374 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/BytesStringCommon.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/CString.doctree b/docs/internal/build/doctrees/modules/internal/CString.doctree new file mode 100644 index 000000000..5050c9f4c Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/CString.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelArray.doctree b/docs/internal/build/doctrees/modules/internal/ChapelArray.doctree new file mode 100644 index 000000000..894a7661d Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelArray.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelArrayViewElision.doctree b/docs/internal/build/doctrees/modules/internal/ChapelArrayViewElision.doctree new file mode 100644 index 000000000..a8d8fa67a Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelArrayViewElision.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelAutoAggregation.doctree b/docs/internal/build/doctrees/modules/internal/ChapelAutoAggregation.doctree new file mode 100644 index 000000000..e0fbba7af Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelAutoAggregation.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelAutoLocalAccess.doctree b/docs/internal/build/doctrees/modules/internal/ChapelAutoLocalAccess.doctree new file mode 100644 index 000000000..c264a17e2 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelAutoLocalAccess.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelBase.doctree b/docs/internal/build/doctrees/modules/internal/ChapelBase.doctree new file mode 100644 index 000000000..d78e25c0a Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelBase.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelBase/currentTask.doctree b/docs/internal/build/doctrees/modules/internal/ChapelBase/currentTask.doctree new file mode 100644 index 000000000..f89943f21 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelBase/currentTask.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelContext.doctree b/docs/internal/build/doctrees/modules/internal/ChapelContext.doctree new file mode 100644 index 000000000..e47fc413b Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelContext.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelDebugPrint.doctree b/docs/internal/build/doctrees/modules/internal/ChapelDebugPrint.doctree new file mode 100644 index 000000000..75723172a Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelDebugPrint.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelDistribution.doctree b/docs/internal/build/doctrees/modules/internal/ChapelDistribution.doctree new file mode 100644 index 000000000..29c9f6058 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelDistribution.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelDomain.doctree b/docs/internal/build/doctrees/modules/internal/ChapelDomain.doctree new file mode 100644 index 000000000..d1ff2eac3 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelDomain.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelGpuSupport.doctree b/docs/internal/build/doctrees/modules/internal/ChapelGpuSupport.doctree new file mode 100644 index 000000000..df84412d9 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelGpuSupport.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelHashing.doctree b/docs/internal/build/doctrees/modules/internal/ChapelHashing.doctree new file mode 100644 index 000000000..39c230128 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelHashing.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelHashtable.doctree b/docs/internal/build/doctrees/modules/internal/ChapelHashtable.doctree new file mode 100644 index 000000000..b28137b98 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelHashtable.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelIOSerialize.doctree b/docs/internal/build/doctrees/modules/internal/ChapelIOSerialize.doctree new file mode 100644 index 000000000..99556a141 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelIOSerialize.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelIOStringifyHelper.doctree b/docs/internal/build/doctrees/modules/internal/ChapelIOStringifyHelper.doctree new file mode 100644 index 000000000..ba830410e Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelIOStringifyHelper.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelIteratorSupport.doctree b/docs/internal/build/doctrees/modules/internal/ChapelIteratorSupport.doctree new file mode 100644 index 000000000..735591c65 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelIteratorSupport.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelLocale.doctree b/docs/internal/build/doctrees/modules/internal/ChapelLocale.doctree new file mode 100644 index 000000000..46494f35d Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelLocale.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelLocks.doctree b/docs/internal/build/doctrees/modules/internal/ChapelLocks.doctree new file mode 100644 index 000000000..5cb80dfbb Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelLocks.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelNumLocales.doctree b/docs/internal/build/doctrees/modules/internal/ChapelNumLocales.doctree new file mode 100644 index 000000000..9af5f7395 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelNumLocales.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelPrivatization.doctree b/docs/internal/build/doctrees/modules/internal/ChapelPrivatization.doctree new file mode 100644 index 000000000..da361134c Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelPrivatization.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelRange.doctree b/docs/internal/build/doctrees/modules/internal/ChapelRange.doctree new file mode 100644 index 000000000..213bf4249 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelRange.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelReduce.doctree b/docs/internal/build/doctrees/modules/internal/ChapelReduce.doctree new file mode 100644 index 000000000..f1cfaabaa Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelReduce.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelRemoteVars.doctree b/docs/internal/build/doctrees/modules/internal/ChapelRemoteVars.doctree new file mode 100644 index 000000000..c01f2b84c Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelRemoteVars.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelSerializedBroadcast.doctree b/docs/internal/build/doctrees/modules/internal/ChapelSerializedBroadcast.doctree new file mode 100644 index 000000000..373b2e1d1 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelSerializedBroadcast.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelShortArrayTransfer.doctree b/docs/internal/build/doctrees/modules/internal/ChapelShortArrayTransfer.doctree new file mode 100644 index 000000000..f5243036e Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelShortArrayTransfer.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelStandard.doctree b/docs/internal/build/doctrees/modules/internal/ChapelStandard.doctree new file mode 100644 index 000000000..0a7a4a177 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelStandard.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelStaticVars.doctree b/docs/internal/build/doctrees/modules/internal/ChapelStaticVars.doctree new file mode 100644 index 000000000..6d2dc3da9 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelStaticVars.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelSyncvar.doctree b/docs/internal/build/doctrees/modules/internal/ChapelSyncvar.doctree new file mode 100644 index 000000000..e45e47feb Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelSyncvar.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelTaskData.doctree b/docs/internal/build/doctrees/modules/internal/ChapelTaskData.doctree new file mode 100644 index 000000000..50e667e15 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelTaskData.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelTaskDataHelp.doctree b/docs/internal/build/doctrees/modules/internal/ChapelTaskDataHelp.doctree new file mode 100644 index 000000000..3d530d258 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelTaskDataHelp.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelTaskID.doctree b/docs/internal/build/doctrees/modules/internal/ChapelTaskID.doctree new file mode 100644 index 000000000..b54f3f4a6 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelTaskID.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelThreads.doctree b/docs/internal/build/doctrees/modules/internal/ChapelThreads.doctree new file mode 100644 index 000000000..9dfb36c72 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelThreads.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelTuple.doctree b/docs/internal/build/doctrees/modules/internal/ChapelTuple.doctree new file mode 100644 index 000000000..7ed63d2a6 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelTuple.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ChapelUtil.doctree b/docs/internal/build/doctrees/modules/internal/ChapelUtil.doctree new file mode 100644 index 000000000..f5db2d7a7 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ChapelUtil.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/DefaultAssociative.doctree b/docs/internal/build/doctrees/modules/internal/DefaultAssociative.doctree new file mode 100644 index 000000000..163ca8903 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/DefaultAssociative.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/DefaultRectangular.doctree b/docs/internal/build/doctrees/modules/internal/DefaultRectangular.doctree new file mode 100644 index 000000000..b749b730d Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/DefaultRectangular.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/DefaultSparse.doctree b/docs/internal/build/doctrees/modules/internal/DefaultSparse.doctree new file mode 100644 index 000000000..3eae5bc8e Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/DefaultSparse.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ExportWrappers.doctree b/docs/internal/build/doctrees/modules/internal/ExportWrappers.doctree new file mode 100644 index 000000000..7114e8856 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ExportWrappers.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ExternalArray.doctree b/docs/internal/build/doctrees/modules/internal/ExternalArray.doctree new file mode 100644 index 000000000..5e2c38967 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ExternalArray.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/ISO_Fortran_binding.doctree b/docs/internal/build/doctrees/modules/internal/ISO_Fortran_binding.doctree new file mode 100644 index 000000000..174339067 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/ISO_Fortran_binding.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpAPU.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpAPU.doctree new file mode 100644 index 000000000..8788d4c66 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpAPU.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpFlat.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpFlat.doctree new file mode 100644 index 000000000..f4bd01cbb Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpFlat.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpGPU.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpGPU.doctree new file mode 100644 index 000000000..767c8d7a1 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpGPU.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpMem.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpMem.doctree new file mode 100644 index 000000000..57c650f89 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpMem.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpRuntime.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpRuntime.doctree new file mode 100644 index 000000000..9ca9ecc10 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpRuntime.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocaleModelHelpSetup.doctree b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpSetup.doctree new file mode 100644 index 000000000..985d19ded Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocaleModelHelpSetup.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/LocalesArray.doctree b/docs/internal/build/doctrees/modules/internal/LocalesArray.doctree new file mode 100644 index 000000000..2eeb42e24 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/LocalesArray.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/MemConsistency.doctree b/docs/internal/build/doctrees/modules/internal/MemConsistency.doctree new file mode 100644 index 000000000..48e5a36ba Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/MemConsistency.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/MemTracking.doctree b/docs/internal/build/doctrees/modules/internal/MemTracking.doctree new file mode 100644 index 000000000..4fd0cd63f Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/MemTracking.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/NetworkAtomicTypes.doctree b/docs/internal/build/doctrees/modules/internal/NetworkAtomicTypes.doctree new file mode 100644 index 000000000..5ff0a00b0 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/NetworkAtomicTypes.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/NetworkAtomics.doctree b/docs/internal/build/doctrees/modules/internal/NetworkAtomics.doctree new file mode 100644 index 000000000..f57e6fb20 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/NetworkAtomics.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/OwnedObject.doctree b/docs/internal/build/doctrees/modules/internal/OwnedObject.doctree new file mode 100644 index 000000000..c2e918c69 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/OwnedObject.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/PrintModuleInitOrder.doctree b/docs/internal/build/doctrees/modules/internal/PrintModuleInitOrder.doctree new file mode 100644 index 000000000..b53d406af Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/PrintModuleInitOrder.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/SharedObject.doctree b/docs/internal/build/doctrees/modules/internal/SharedObject.doctree new file mode 100644 index 000000000..ee9a97e2d Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/SharedObject.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/String.doctree b/docs/internal/build/doctrees/modules/internal/String.doctree new file mode 100644 index 000000000..b63c52885 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/String.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/String/NVStringFactory.doctree b/docs/internal/build/doctrees/modules/internal/String/NVStringFactory.doctree new file mode 100644 index 000000000..b7d902739 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/String/NVStringFactory.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/StringCasts.doctree b/docs/internal/build/doctrees/modules/internal/StringCasts.doctree new file mode 100644 index 000000000..8494c2fdd Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/StringCasts.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/startInitCommDiags.doctree b/docs/internal/build/doctrees/modules/internal/startInitCommDiags.doctree new file mode 100644 index 000000000..550ee95d7 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/startInitCommDiags.doctree differ diff --git a/docs/internal/build/doctrees/modules/internal/stopInitCommDiags.doctree b/docs/internal/build/doctrees/modules/internal/stopInitCommDiags.doctree new file mode 100644 index 000000000..13a966958 Binary files /dev/null and b/docs/internal/build/doctrees/modules/internal/stopInitCommDiags.doctree differ diff --git a/docs/internal/genindex.html b/docs/internal/genindex.html new file mode 100644 index 000000000..e929a595b --- /dev/null +++ b/docs/internal/genindex.html @@ -0,0 +1,6381 @@ + + + + + + Index — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ Symbols + | _ + | A + | B + | C + | D + | E + | F + | G + | H + | I + | J + | K + | L + | M + | N + | O + | P + | Q + | R + | S + | T + | U + | V + | W + | X + | Y + +
+

Symbols

+ + + +
+ +

_

+ + + +
+ +

A

+ + + +
+ +

B

+ + + +
+ +

C

+ + + +
+ +

D

+ + + +
+ +

E

+ + + +
+ +

F

+ + + +
+ +

G

+ + + +
+ +

H

+ + + +
+ +

I

+ + + +
+ +

J

+ + +
+ +

K

+ + + +
+ +

L

+ + + +
+ +

M

+ + + +
+ +

N

+ + + +
+ +

O

+ + + +
+ +

P

+ + + +
+ +

Q

+ + + +
+ +

R

+ + + +
+ +

S

+ + + +
+ +

T

+ + + +
+ +

U

+ + + +
+ +

V

+ + + +
+ +

W

+ + + +
+ +

X

+ + +
+ +

Y

+ + +
+ + + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/internal/index.html b/docs/internal/index.html new file mode 100644 index 000000000..47d4ba2e2 --- /dev/null +++ b/docs/internal/index.html @@ -0,0 +1,267 @@ + + + + + + + chpldoc documentation — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ + +
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/make.bat b/docs/internal/make.bat new file mode 100644 index 000000000..c551fd730 --- /dev/null +++ b/docs/internal/make.bat @@ -0,0 +1,242 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set BUILDDIR=build +set ALLSPHINXOPTS=-W -d %BUILDDIR%/doctrees %SPHINXOPTS% source +set I18NSPHINXOPTS=%SPHINXOPTS% source +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% + set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. singlehtml to make a single large HTML file + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. devhelp to make HTML files and a Devhelp project + echo. epub to make an epub + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. text to make text files + echo. man to make manual pages + echo. texinfo to make Texinfo files + echo. gettext to make PO message catalogs + echo. changes to make an overview over all changed/added/deprecated items + echo. xml to make Docutils-native XML files + echo. pseudoxml to make pseudoxml-XML files for display purposes + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i + del /q /s %BUILDDIR%\* + goto end +) + + +%SPHINXBUILD% 2> nul +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. + goto end +) + +if "%1" == "singlehtml" ( + %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in %BUILDDIR%/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in %BUILDDIR%/qthelp, like this: + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\chpldoc.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\chpldoc.ghc + goto end +) + +if "%1" == "devhelp" ( + %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. + goto end +) + +if "%1" == "epub" ( + %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The epub file is in %BUILDDIR%/epub. + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + if errorlevel 1 exit /b 1 + echo. + echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdf" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "latexpdfja" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex + cd %BUILDDIR%/latex + make all-pdf-ja + cd %BUILDDIR%/.. + echo. + echo.Build finished; the PDF files are in %BUILDDIR%/latex. + goto end +) + +if "%1" == "text" ( + %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The text files are in %BUILDDIR%/text. + goto end +) + +if "%1" == "man" ( + %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The manual pages are in %BUILDDIR%/man. + goto end +) + +if "%1" == "texinfo" ( + %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. + goto end +) + +if "%1" == "gettext" ( + %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The message catalogs are in %BUILDDIR%/locale. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes + if errorlevel 1 exit /b 1 + echo. + echo.The overview file is in %BUILDDIR%/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck + if errorlevel 1 exit /b 1 + echo. + echo.Link check complete; look for any errors in the above output ^ +or in %BUILDDIR%/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest + if errorlevel 1 exit /b 1 + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in %BUILDDIR%/doctest/output.txt. + goto end +) + +if "%1" == "xml" ( + %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The XML files are in %BUILDDIR%/xml. + goto end +) + +if "%1" == "pseudoxml" ( + %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml + if errorlevel 1 exit /b 1 + echo. + echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. + goto end +) + +:end diff --git a/docs/internal/modules/internal/ArrayViewRankChange.html b/docs/internal/modules/internal/ArrayViewRankChange.html new file mode 100644 index 000000000..c970b8ade --- /dev/null +++ b/docs/internal/modules/internal/ArrayViewRankChange.html @@ -0,0 +1,768 @@ + + + + + + + ArrayViewRankChange — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArrayViewRankChange

+

Usage

+
use ArrayViewRankChange;
+
+
+

or

+
import ArrayViewRankChange;
+
+
+
+
+class ArrayViewRankChangeDist : BaseDist
+
+
+var downDistPid : int
+
+ +
+
+var downDistInst
+
+ +
+
+const collapsedDim
+
+ +
+
+const idx
+
+ +
+
+proc downDist
+
+ +
+
+override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds)
+
+ +
+
+proc dsiClone()
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+override proc dsiDestroyDist()
+
+ +
+
+override proc dsiIsLayout() param
+
+ +
+
+proc dsiEqualDMaps(that: ArrayViewRankChangeDist(?))
+
+ +
+ +
+
+class ArrayViewRankChangeDom : BaseRectangularDom(?)
+
+
+var upDomInst : unmanaged(DefaultRectangularDom(rank, idxType, strides)?)
+
+ +
+
+const collapsedDim
+
+ +
+
+const idx
+
+ +
+
+const distPid
+
+ +
+
+const distInst
+
+ +
+
+proc dist
+
+ +
+
+var downDomPid : int
+
+ +
+
+var downDomInst : downDomType(collapsedDim.size, idxType, strides, distInst)?
+
+ +
+
+proc downrank param
+
+ +
+
+proc upDom : upDomInst!.type
+
+ +
+
+proc downDom : downDomInst!.type
+
+ +
+
+proc dsiBuildArray(type eltType, param initElts: bool)
+
+ +
+
+proc dsiSetIndices(inds)
+
+ +
+
+proc dsiAssignDomain(rhs: domain, lhsPrivate: bool)
+
+ +
+
+iter these()
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone && !localeModelHasSublocales && chpl__isDROrDRView(downDom) && __primitive("resolves", upDom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone && !localeModelHasSublocales && !chpl__isDROrDRView(downDom) && __primitive("resolves", downDom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+proc chpl_rankChangeConvertLoDTupleToHiD(tup)
+
+ +
+
+proc chpl_rankChangeConvertHiDTupleToLoD(tup)
+
+ +
+
+proc downIdxToUpIdx(downIdx)
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+override proc dsiMyDist()
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc isRankChangeDomainView() param
+
+ +
+
+proc _getActualDomain()
+
+ +
+
+override proc dsiDestroyDom()
+
+ +
+
+proc parSafe param
+
+ +
+
+override proc dsiLow
+
+ +
+
+override proc dsiHigh
+
+ +
+
+override proc dsiStride
+
+ +
+
+override proc dsiAlignment
+
+ +
+
+override proc dsiFirst
+
+ +
+
+override proc dsiLast
+
+ +
+
+override proc dsiAlignedLow
+
+ +
+
+override proc dsiAlignedHigh
+
+ +
+
+override proc dsiIndexOrder(i)
+
+ +
+
+override proc dsiCreateIndexBuffer(size)
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+proc dsiGetReprivatizeData()
+
+ +
+
+proc dsiReprivatize(other, reprivatizeData)
+
+ +
+
+override proc dsiSupportsAutoLocalAccess() param
+
+ +
+ +
+
+class ArrayViewRankChangeArr : AbsBaseArr(?)
+
+
+const _DomPid
+
+ +
+
+const dom
+
+ +
+
+const _ArrPid
+
+ +
+
+const _ArrInstance
+
+ +
+
+const collapsedDim
+
+ +
+
+const idx
+
+ +
+
+const indexCache
+
+ +
+
+param ownsArrInstance
+
+ +
+
+proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, const collapsedDim, const idx, param ownsArrInstance: bool)
+
+ +
+
+proc idxType type
+
+ +
+
+proc rank param
+
+ +
+
+override proc isRankChangeArrayView() param
+
+ +
+
+iter these() ref
+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis) ref  where tag == iterKind.follower
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+proc dsiSerialRead(f) throws
+
+ +
+
+override proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiAccess(i: idxType ...rank) ref
+
+ +
+
+proc dsiAccess(i: idxType ...rank)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i: idxType ...rank) const ref
+
+ +
+
+proc dsiAccess(i) ref
+
+ +
+
+proc dsiAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i) const ref
+
+ +
+
+proc dsiLocalAccess(i) ref
+
+ +
+
+proc dsiLocalAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiLocalAccess(i) const ref
+
+ +
+
+proc dsiBoundsCheck(i)
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+proc shouldUseIndexCache() param
+
+ +
+
+proc buildIndexCache()
+
+ +
+
+proc privDom : dom.type
+
+ +
+
+proc arr
+
+ +
+
+override proc dsiGetBaseDom()
+
+ +
+
+proc _getActualArray()
+
+ +
+
+proc _containsRCRE() param
+
+ +
+
+proc _getRCREView()
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+override proc doiCanBulkTransferRankChange() param
+
+ +
+
+proc doiBulkTransferFromKnown(destDom, srcClass, srcDom) : bool  where this.arr.doiCanBulkTransferRankChange()
+
+ +
+
+proc doiBulkTransferToKnown(srcDom, destClass, destDom) : bool  where this.arr.doiCanBulkTransferRankChange()
+
+ +
+ +
+
+proc chpl_rankChangeConvertIdx(i: integral, collapsedDim, idx)
+
+ +
+
+proc chpl_rankChangeConvertIdx(i, collapsedDim, idx)
+
+ +
+
+proc chpl_rankChangeConvertIdxHiDToLoD(i, collapsedDim, idx, param rank)
+
+ +
+
+proc chpl_rankChangeConvertDownToUp(dims, param uprank, collapsedDim)
+
+ +
+
+proc chpl_rankChangeConvertDom(dims, param uprank, collapsedDim, idx)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ArrayViewReindex.html b/docs/internal/modules/internal/ArrayViewReindex.html new file mode 100644 index 000000000..4c45b0fd1 --- /dev/null +++ b/docs/internal/modules/internal/ArrayViewReindex.html @@ -0,0 +1,753 @@ + + + + + + + ArrayViewReindex — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArrayViewReindex

+

Usage

+
use ArrayViewReindex;
+
+
+

or

+
import ArrayViewReindex;
+
+
+
+
+class ArrayViewReindexDist : BaseDist
+
+
+const downDistPid : int
+
+ +
+
+const downDistInst
+
+ +
+
+const updom
+
+ +
+
+const downdomPid
+
+ +
+
+const downdomInst
+
+ +
+
+proc downDist
+
+ +
+
+override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds)
+
+ +
+
+proc dsiClone()
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+override proc dsiDestroyDist()
+
+ +
+
+override proc dsiIsLayout() param
+
+ +
+ +
+
+class ArrayViewReindexDom : BaseRectangularDom(?)
+
+
+var updomInst : unmanaged(DefaultRectangularDom(rank, idxType, strides)?)
+
+ +
+
+var downdomPid
+
+ +
+
+var downdomInst
+
+ +
+
+const distPid
+
+ +
+
+const distInst
+
+ +
+
+var ownsDownDomInst = false
+
+ +
+
+proc dist
+
+ +
+
+proc updom : updomInst!.type
+
+ +
+
+proc downdomtype(param rank: int, type idxType, param strides: bool) type
+
+ +
+
+proc downdom : downdomInst.type
+
+ +
+
+proc dsiBuildArray(type eltType, param initElts: bool)
+
+ +
+
+proc dsiSetIndices(inds)
+
+ +
+
+iter these()
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone && chpl__isDROrDRView(downdom) && __primitive("resolves", updom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone && !chpl__isDROrDRView(downdom) && __primitive("resolves", downdom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+proc chpl_reindexConvertLoDTupleToHiD(tup)
+
+ +
+
+proc chpl_reindexConvertHiDTupleToLoD(tup)
+
+ +
+
+proc downIdxToUpIdx(downIdx: integral)
+
+ +
+
+proc downIdxToUpIdx(i)
+
+ +
+
+override proc dsiMyDist()
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+proc dsiAssignDomain(rhs: domain, lhsPrivate: bool)
+
+ +
+
+override proc isReindexDomainView() param
+
+ +
+
+proc _getActualDomain()
+
+ +
+
+override proc dsiDestroyDom()
+
+ +
+
+proc parSafe param
+
+ +
+
+override proc dsiLow
+
+ +
+
+override proc dsiHigh
+
+ +
+
+override proc dsiStride
+
+ +
+
+override proc dsiAlignment
+
+ +
+
+override proc dsiFirst
+
+ +
+
+override proc dsiLast
+
+ +
+
+override proc dsiAlignedLow
+
+ +
+
+override proc dsiAlignedHigh
+
+ +
+
+override proc dsiIndexOrder(i)
+
+ +
+
+override proc dsiCreateIndexBuffer(size)
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+proc dsiGetReprivatizeData()
+
+ +
+
+proc dsiReprivatize(other, reprivatizeData)
+
+ +
+ +
+
+class ArrayViewReindexArr : AbsBaseArr(?)
+
+
+const _DomPid
+
+ +
+
+const dom
+
+ +
+
+const _ArrPid
+
+ +
+
+const _ArrInstance
+
+ +
+
+const indexCache
+
+ +
+
+param ownsArrInstance
+
+ +
+
+proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, param ownsArrInstance: bool)
+
+ +
+
+proc downdom : arr.dom.type
+
+ +
+
+proc idxType type
+
+ +
+
+proc rank param
+
+ +
+
+override proc isReindexArrayView() param
+
+ +
+
+iter these() ref
+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis) ref  where tag == iterKind.follower
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+proc dsiSerialRead(f) throws
+
+ +
+
+override proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiAccess(i: idxType ...rank) ref
+
+ +
+
+proc dsiAccess(i: idxType ...rank)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i: idxType ...rank) const ref
+
+ +
+
+proc dsiAccess(i) ref
+
+ +
+
+proc dsiAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i) const ref
+
+ +
+
+proc dsiLocalAccess(i) ref
+
+ +
+
+proc dsiLocalAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiLocalAccess(i) const ref
+
+ +
+
+proc dsiBoundsCheck(i)
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+proc shouldUseIndexCache() param
+
+ +
+
+proc buildIndexCache()
+
+ +
+
+proc privDom : dom.type
+
+ +
+
+proc arr
+
+ +
+
+override proc dsiGetBaseDom()
+
+ +
+
+proc _getActualArray()
+
+ +
+
+proc _containsRCRE() param
+
+ +
+
+proc _getRCREView()
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+override proc doiCanBulkTransferRankChange() param
+
+ +
+
+proc doiBulkTransferFromKnown(destDom, srcClass, srcDom) : bool
+
+ +
+
+proc doiBulkTransferToKnown(srcDom, destClass, destDom) : bool
+
+ +
+ +
+
+proc chpl_reindexConvertIdxDim(i, updom, downdom, dim: int)
+
+ +
+
+proc chpl_reindexConvertIdx(i: integral, updom, downdom)
+
+ +
+
+proc chpl_reindexConvertIdx(i, updom, downdom)
+
+ +
+
+proc chpl_reindexConvertDom(dims, updom, downdom)
+
+ +
+
+proc chpl_reindexConvertDomMaybeSlice(dims, updom, downdom)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ArrayViewSlice.html b/docs/internal/modules/internal/ArrayViewSlice.html new file mode 100644 index 000000000..8e3f47e51 --- /dev/null +++ b/docs/internal/modules/internal/ArrayViewSlice.html @@ -0,0 +1,433 @@ + + + + + + + ArrayViewSlice — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ArrayViewSlice

+

Usage

+
use ArrayViewSlice;
+
+
+

or

+
import ArrayViewSlice;
+
+
+
+
+param chpl_debugSerializeSlice = false
+
+ +
+
+param chpl_serializeSlices = false
+
+ +
+
+class ArrayViewSliceArr : AbsBaseArr(?)
+
+
+const _DomPid
+
+ +
+
+var dom
+
+ +
+
+const _ArrPid
+
+ +
+
+const _ArrInstance
+
+ +
+
+const indexCache
+
+ +
+
+proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance)
+
+ +
+
+proc chpl__rvfMe() param
+
+ +
+
+proc chpl__serialize()   where chpl__rvfMe()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+proc idxType type
+
+ +
+
+proc rank param
+
+ +
+
+override proc isSliceArrayView() param
+
+ +
+
+iter these() ref
+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis) ref  where tag == iterKind.follower
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+proc dsiSerialRead(f) throws
+
+ +
+
+override proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiAccess(i: idxType ...rank) ref
+
+ +
+
+proc dsiAccess(i: idxType ...rank)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i: idxType ...rank) const ref
+
+ +
+
+proc dsiAccess(i) ref
+
+ +
+
+proc dsiAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(i) const ref
+
+ +
+
+proc dsiBoundsCheck(i)
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+iter dsiLocalSubdomains(loc: locale)
+
+ +
+
+override proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiGetPrivatizeData()
+
+ +
+
+proc dsiPrivatize(privatizeData)
+
+ +
+
+proc shouldUseIndexCache() param
+
+ +
+
+proc buildIndexCache()
+
+ +
+
+proc privDom : dom.type
+
+ +
+
+proc arr
+
+ +
+
+override proc dsiGetBaseDom()
+
+ +
+
+proc _getActualArray()
+
+ +
+
+proc _containsRCRE() param
+
+ +
+
+proc _getRCREView()
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+override proc doiCanBulkTransferRankChange() param
+
+ +
+
+proc doiBulkTransferFromKnown(destDom, srcClass, srcDom) : bool
+
+ +
+
+proc doiBulkTransferToKnown(srcDom, destClass, destDom) : bool
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/Atomics.html b/docs/internal/modules/internal/Atomics.html new file mode 100644 index 000000000..e48db92d9 --- /dev/null +++ b/docs/internal/modules/internal/Atomics.html @@ -0,0 +1,675 @@ + + + + + + + Atomics — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Atomics

+

Usage

+
use Atomics;
+
+
+

or

+
import Atomics;
+
+
+

For example, the following code declares an atomic variable x that +stores an int:

+
var x: atomic int;
+
+
+

Such an atomic variable that is declared without an initialization expression +will store the default value of the contained type (i.e. 0 or false).

+

Atomic variables can also be declared with an initial value:

+
var y: atomic int = 1;
+
+
+

Similarly, a temporary atomic value can be created by casting to atomic:

+
var one: int = 1;
+... one : atomic int... // creates an `atomic int` initialized with 1
+
+
+

Assignment is supported between atomic variables as well:

+
var x: atomic int = 1;
+var y: atomic int = 2;
+
+x = y; // equivalent to x.write(y.read())
+
+
+

Chapel currently supports atomic operations for bools, all supported sizes of +signed and unsigned integers, as well as all supported sizes of reals. Note +that not all operations are supported for all atomic types. The supported types +are listed for each operation.

+
+

Rationale.

+

The choice of supported atomic variable types as well as the atomic +operations was strongly influenced by the C11 standard.

+
+

Most atomic methods accept an optional argument named order of type +memoryOrder. The order argument is used to specify the ordering +constraints of atomic operations. The supported memoryOrder values are:

+
+
    +
  • memoryOrder.relaxed

  • +
  • memoryOrder.acquire

  • +
  • memoryOrder.release

  • +
  • memoryOrder.acqRel

  • +
  • memoryOrder.seqCst

  • +
+
+

See also Chapter-Memory_Consistency_Model and in particular +non_sc_atomics for more information on the meaning of these memory +orders.

+

Unless specified, the default for the memoryOrder parameter is +memoryOrder.seqCst.

+
+

Implementors’ note.

+

Not all architectures or implementations may support all memoryOrder +values. In these cases, the implementation should default to a more +conservative ordering than specified.

+
+
+
+proc chpl_atomic_thread_fence(order: memory_order)
+
+ +
+
+proc atomic_fence(order: memory_order = memory_order_seq_cst)
+
+ +
+
+proc atomicFence(param order: memoryOrder = memoryOrder.seqCst)
+

An atomic fence that establishes an ordering of non-atomic and relaxed +atomic operations.

+
+ +
+
+proc chpl__processorAtomicType(type valType) type
+
+ +
+
+proc chpl__atomicType(type valType) type
+
+ +
+
+proc chpl_comm_ensure_progress() : void
+
+ +
+
+record AtomicBool : writeSerializable
+
+
+proc type valType type
+
+ +
+
+proc valType type
+
+ +
+
+var _v : externT(bool)
+
+ +
+
+proc ref init_helper(val: bool)
+
+ +
+
+proc init()
+
+ +
+
+proc init=(other: AtomicBool)
+
+ +
+
+proc init=(other: bool)
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc const read(param order: memoryOrder = memoryOrder.seqCst) : bool
+

Returns the stored value.

+
+ +
+
+proc ref write(val: bool, param order: memoryOrder = memoryOrder.seqCst) : void
+

Stores val as the new value.

+
+ +
+
+proc ref exchange(val: bool, param order: memoryOrder = memoryOrder.seqCst) : bool
+

Stores val as the new value and returns the original value.

+
+ +
+
+proc ref compareExchange(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool
+

Stores desired as the new value, if and only if the original value is +equal to expected. Returns true if desired was stored, otherwise +updates expected to the original value.

+
+ +
+
+proc ref compareExchange(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder) : bool
+
+ +
+
+proc ref compareExchangeWeak(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool
+

Similar to compareExchange, except that this function may +return false even if the original value was equal to expected. This +may happen if the value could not be updated atomically.

+

This weak version is allowed to spuriously fail, but when +compareExchange is already in a loop, it can offer better +performance on some platforms.

+
+ +
+
+proc ref compareExchangeWeak(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder)
+
+ +
+
+proc ref compareAndSwap(expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool
+
+

Warning

+

‘compareAndSwap’ is unstable

+
+

Stores desired as the new value, if and only if the original value is +equal to expected. Returns true if desired was stored.

+
+ +
+
+proc ref testAndSet(param order: memoryOrder = memoryOrder.seqCst) : bool
+

Stores true as the new value and returns the old value.

+
+ +
+
+proc ref clear(param order: memoryOrder = memoryOrder.seqCst) : void
+

Stores false as the new value.

+
+ +
+
+proc const waitFor( val: bool, param order: memoryOrder = memoryOrder.seqCst) : void
+

Waits until the stored value is equal to val. The implementation may +yield the running task while waiting.

+
+ +
+
+proc const serialize( writer, ref serializer)  throws
+
+ +
+ +
+
+operator :(rhs: bool, type t: AtomicBool)
+
+ +
+
+record AtomicT : writeSerializable
+
+
+type valType
+
+ +
+
+var _v : externT(valType)
+
+ +
+
+proc ref init_helper(val: valType)
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init=(const ref other: this.type)
+
+ +
+
+proc init=(other: this.type.valType)
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc const read(param order: memoryOrder = memoryOrder.seqCst) : valType
+

Returns the stored value.

+
+ +
+
+proc ref write(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Stores val as the new value.

+
+ +
+
+proc ref exchange(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+

Stores val as the new value and returns the original value.

+
+ +
+
+proc ref compareExchange(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool
+

Stores desired as the new value, if and only if the original value is +equal to expected. Returns true if desired was stored, otherwise +updates expected to the original value.

+
+ +
+
+proc ref compareExchange(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool
+
+ +
+
+proc ref compareExchangeWeak(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool
+

Similar to compareExchange, except that this function may +return false even if the original value was equal to expected. This +may happen if the value could not be updated atomically.

+

This weak version is allowed to spuriously fail, but when +compareExchange is already in a loop, it can offer better +performance on some platforms.

+
+ +
+
+proc ref compareExchangeWeak(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool
+
+ +
+
+proc ref compareAndSwap(expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool
+
+

Warning

+

‘compareAndSwap’ is unstable

+
+

Stores desired as the new value, if and only if the original value is +equal to expected. Returns true if desired was stored.

+
+ +
+
+proc ref fetchAdd(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+
+
Returns:
+

The original value.

+
+
+

Adds val to the original value and stores the result. Defined for +integer and real atomic types.

+
+ +
+
+proc ref add(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Adds val to the original value and stores the result. Defined for +integer and real atomic types.

+
+ +
+
+proc ref fetchSub(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+
+
Returns:
+

The original value.

+
+
+

Subtracts val from the original value and stores the result. Defined +for integer and real atomic types.

+
+ +
+
+proc ref sub(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Subtracts val from the original value and stores the result. Defined +for integer and real atomic types.

+
+ +
+
+proc ref fetchOr(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+
+
Returns:
+

The original value.

+
+
+

Applies the | operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc ref or(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Applies the | operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc ref fetchAnd(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+
+
Returns:
+

The original value.

+
+
+

Applies the & operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc ref and(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Applies the & operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc ref fetchXor(val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType
+
+
Returns:
+

The original value.

+
+
+

Applies the ^ operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc ref xor(val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Applies the ^ operator to val and the original value, then stores +the result.

+

Only defined for integer atomic types.

+
+ +
+
+proc const waitFor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void
+

Waits until the stored value is equal to val. The implementation may +yield the running task while waiting.

+
+ +
+
+proc const serialize( writer, ref serializer)  throws
+
+ +
+ +
+
+operator :(rhs, type t: AtomicT)   where rhs.type == t.valType
+
+ +
+
+operator AtomicBool.=(ref a: AtomicBool, const ref b: AtomicBool)
+

Equivalent to a.write(b.read())

+
+ +
+
+operator AtomicBool.=(ref a: AtomicBool, b)
+
+ +
+
+operator AtomicT.=(ref a: AtomicT, const ref b: AtomicT)
+

Equivalent to a.write(b.read())

+
+ +
+
+operator AtomicT.=(ref a: AtomicT, b)
+
+ +
+
+operator AtomicT.+(a: AtomicT, b)
+
+ +
+
+operator AtomicT.-(a: AtomicT, b)
+
+ +
+
+operator AtomicT.*(a: AtomicT, b)
+
+ +
+
+operator AtomicT./(a: AtomicT, b)
+
+ +
+
+operator AtomicT.%(a: AtomicT, b)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/AtomicsCommon.html b/docs/internal/modules/internal/AtomicsCommon.html new file mode 100644 index 000000000..8c31befd3 --- /dev/null +++ b/docs/internal/modules/internal/AtomicsCommon.html @@ -0,0 +1,247 @@ + + + + + + + AtomicsCommon — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

AtomicsCommon

+

Usage

+
use AtomicsCommon;
+
+
+

or

+
import AtomicsCommon;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+record atomic_refcnt
+
+
+var _cnt : chpl__processorAtomicType(int)
+
+ +
+
+proc init()
+
+ +
+
+proc init=(other: atomic_refcnt)
+
+ +
+
+proc inc(cnt = 1)
+
+ +
+
+proc dec() : int(64)
+
+ +
+
+proc read() : int(64)
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ByteBufferHelpers.html b/docs/internal/modules/internal/ByteBufferHelpers.html new file mode 100644 index 000000000..f75188bee --- /dev/null +++ b/docs/internal/modules/internal/ByteBufferHelpers.html @@ -0,0 +1,307 @@ + + + + + + + ByteBufferHelpers — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ByteBufferHelpers

+

Usage

+
use ByteBufferHelpers;
+
+
+

or

+
import ByteBufferHelpers;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+type byteType = uint(8)
+
+ +
+
+type bufferType = c_ptr(byteType)
+
+ +
+
+type locIdType = chpl_nodeID.type
+
+ +
+
+config param chpl_stringGrowthFactor = 1.5
+
+ +
+
+proc chpl_string_comm_get(dest: bufferType, src_loc_id: int(64), src_addr: bufferType, len: integral)
+
+ +
+
+proc bufferAlloc(requestedSize) : (bufferType, int)
+
+ +
+
+proc bufferRealloc(buf: bufferType, requestedSize: int)
+
+ +
+
+proc bufferEnsureSize(buf: bufferType, currentSize: int, requestedSize: int)
+
+ +
+
+proc bufferCopyRemote(src_loc_id: int(64), src_addr: bufferType, len: int) : bufferType
+
+ +
+
+proc bufferCopyLocal(src_addr: bufferType, len: int)
+
+ +
+
+proc bufferFree(buf: bufferType)
+
+ +
+
+proc bufferCopy(buf: bufferType, off: int, len: int, loc: locIdType)
+
+ +
+
+proc bufferMemcpy(dst: bufferType, src_loc: int(64), src: bufferType, len: int, dst_off: int = 0, src_off: int = 0)
+
+ +
+
+proc bufferMemcpyLocal(dst: bufferType, src: bufferType, len: int, dst_off: int = 0, src_off: int = 0)
+
+ +
+
+proc bufferMemmoveLocal(dst: bufferType, src, len: int, dst_off: int = 0, src_off: int = 0)
+
+ +
+
+proc bufferGetByte(buf: bufferType, off: int, loc: locIdType)
+
+ +
+
+proc bufferEquals(buf1: bufferType, off1: int, loc1: locIdType, buf2: bufferType, off2: int, loc2: locIdType, len: int)
+
+ +
+
+proc bufferEqualsLocal(buf1: bufferType, off1: int, buf2: bufferType, off2: int, len: int)
+
+ +
+
+proc _strcmp(buf1: bufferType, len1: int, loc1: locIdType, buf2: bufferType, len2: int, loc2: locIdType)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/Bytes.html b/docs/internal/modules/internal/Bytes.html new file mode 100644 index 000000000..22975d136 --- /dev/null +++ b/docs/internal/modules/internal/Bytes.html @@ -0,0 +1,1414 @@ + + + + + + + Bytes — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Bytes

+

Usage

+
use Bytes;
+
+
+

or

+
import Bytes;
+
+
+
+
+type bytes
+
+ +

Supports the following methods:

+
+
+proc type bytes.createBorrowingBuffer(x: bytes) : bytes
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new bytes which borrows the internal buffer of +another bytes. If the buffer is freed before the bytes +returned from this function, accessing it is undefined behavior.

+
+
Arguments:
+

x – The bytes to borrow the buffer from

+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createBorrowingBuffer(x: chpl_c_string, length = x.size) : bytes
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘bytes.createBorrowingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc type bytes.createBorrowingBuffer(x: c_ptr(?t), length = strLen(x)) : bytes
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new bytes which borrows the memory allocated for a +c_ptr. If the buffer is freed before the bytes returned +from this function, accessing it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptr(int(8)) or c_ptr(uint(8))c_ptr to borrow as a buffer

  • +
  • length : int – Length of x, excluding the optional terminating null byte. +Defaults to the number of bytes in x before the terminating +null byte.

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createBorrowingBuffer(x: c_ptrConst(?t), length = strLen(x)) : bytes
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new bytes which borrows the memory allocated for a +c_ptrConst. If the buffer is freed before the bytes returned +from this function, accessing it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8))c_ptrConst to borrow as a buffer

  • +
  • length : int – Length of x, excluding the optional terminating null byte. +Defaults to the number of bytes in x before the terminating +null byte.

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc chpl_createBytesWithLiteral(buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int)
+
+ +
+
+proc type bytes.createBorrowingBuffer(x: c_ptr(?t), length: int, size: int) : bytes
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new bytes which borrows the memory allocated for a +c_ptr. If the buffer is freed before the bytes returned +from this function, accessing it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – Buffer to borrow

  • +
  • length – Length of the buffer x, excluding the optional terminating +null byte.

  • +
  • size – Size of memory allocated for x in bytes

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createAdoptingBuffer(x: c_ptr(?t), length = strLen(x)) : bytes
+

Creates a new bytes which takes ownership of the memory +allocated for a c_ptr. The buffer will be freed when the +bytes is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The c_ptr to take ownership of

  • +
  • length : int – Length of buffer x, excluding the optional terminating null +byte. Defaults to the number of bytes in x before the +terminating null byte.

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createAdoptingBuffer(x: chpl_c_string, length = x.size) : bytes
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘bytes.createAdoptingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc type bytes.createAdoptingBuffer(x: c_ptrConst(?t), length = strLen(x)) : bytes
+

Creates a new bytes which takes ownership of the memory +allocated for a c_ptrConst. The buffer will be freed when the +bytes is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8)) – The c_ptrConst to take ownership of

  • +
  • length : int – Length of x’s buffer, excluding the optional terminating null +byte. Defaults to the number of bytes in x before the +terminating null byte.

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createAdoptingBuffer(x: c_ptr(?t), length: int, size: int) : bytes
+

Creates a new bytes which takes ownership of the memory +allocated for a c_ptr. The buffer will be freed when the +bytes is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to take ownership of

  • +
  • length – Length of the buffer x, excluding the optional terminating +null byte.

  • +
  • size – Size of memory allocated for x in bytes

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createCopyingBuffer(x: c_ptrConst(?t), length = strLen(x)) : bytes
+

Creates a new bytes by creating a copy of a buffer

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8)) – The c_ptrConst to copy

  • +
  • length : int – Length of buffer x, excluding the optional terminating null +byte. Defaults to the number of bytes in x before the +terminating null byte.

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+proc type bytes.createCopyingBuffer(x: chpl_c_string, length = x.size) : bytes
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘bytes.createCopyingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc type bytes.createCopyingBuffer(x: c_ptr(?t), length = strLen(x), size = length + 1) : bytes
+

Creates a new bytes by creating a copy of a buffer.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to copy

  • +
  • length – Length of buffer x, excluding the optional terminating null +byte. Defaults to the number of bytes in x before the +terminating null byte.

  • +
  • size – Size of memory allocated for x in bytes

  • +
+
+
Returns:
+

A new bytes

+
+
+
+ +
+
+record _bytes : writeSerializable, readDeserializable
+
+
+var buffLen : int = 0
+
+ +
+
+var buffSize : int = 0
+
+ +
+
+var buff : bufferType = nil
+
+ +
+
+var isOwned : bool = true
+
+ +
+
+var locale_id = chpl_nodeID
+
+ +
+
+proc init()
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc chpl__serialize()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+proc ref deserialize(reader, ref deserialize) throws
+
+ +
+
+proc init=(b: bytes)
+
+ +
+
+proc init=(b: string)
+
+ +
+
+proc init=(b: c_string)
+
+

Warning

+

the type ‘c_string’ is deprecated; please use one of the ‘bytes.create*ingBuffer’ methods that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc byteIndices
+
+ +
+
+proc param size param
+
+ +
+
+proc param numBytes param
+
+ +
+
+proc param this(param i: int) param : int
+
+ +
+
+proc param item(param i: int) param : bytes
+
+ +
+
+proc item(i: byteIndex) : bytes
+
+ +
+
+proc this(i: byteIndex) : uint(8)
+
+ +
+
+proc param toByte() param : uint(8)
+
+ +
+
+proc param byte(param i: int) param : uint(8)
+
+ +
+
+proc join(const ref x: [] bytes) : bytes
+
+ +
+
+proc join(const ref x)   where isTuple(x)
+
+ +
+
+proc join(ir: _iteratorRecord) : bytes
+
+ +
+ +
+
+proc bytes.size : int
+
+
Returns:
+

The number of bytes in the bytes.

+
+
+
+ +
+
+proc bytes.indices : range
+
+
Returns:
+

The indices that can be used to index into the bytes +(i.e., the range 0..<this.size)

+
+
+
+ +
+
+proc bytes.numBytes : int
+
+
Returns:
+

The number of bytes in the bytes.

+
+
+
+ +
+
+proc bytes.localize() : bytes
+
+

Warning

+

bytes.localize() is unstable and may change in a future release

+
+

Gets a version of the bytes that is on the currently +executing locale.

+
+
Returns:
+

A shallow copy if the bytes is already on the +current locale, otherwise a deep copy is performed.

+
+
+
+ +
+
+proc bytes.c_str() : c_ptrConst(c_char)
+
+

Warning

+

‘bytes.c_str()’ has moved to ‘CTypes’. Please ‘use CTypes’ to access ‘c_str

+
+

Gets a c_ptrConst(c_char) from a bytes. The returned +c_ptrConst shares the buffer with the bytes.

+
+

Warning

+

This can only be called safely on a bytes whose home is +the current locale. This property can be enforced by calling +bytes.localize() before c_str(). If the +bytes is remote, the program will halt.

+
+

For example:

+
var myBytes = b"Hello!";
+on differentLocale {
+  printf("%s", myBytes.localize().c_str());
+}
+
+
+
+
Returns:
+

A c_ptrConst(c_char) that points to the underlying buffer used +by this bytes. The returned c_ptrConst(c_char) is only +valid when used on the same locale as the bytes.

+
+
+
+ +
+
+proc bytes.item(i: int) : bytes
+

Gets an ASCII character from the bytes

+
+
Arguments:
+

i – The index

+
+
Returns:
+

A 1-length bytes

+
+
+
+ +
+
+proc bytes.this(i: int) : uint(8)
+

Gets a byte from the bytes

+
+
Arguments:
+

i – The index

+
+
Returns:
+

uint(8)

+
+
+
+ +
+
+proc bytes.toByte() : uint(8)
+
+
Returns:
+

The value of a single-byte bytes as an integer.

+
+
+
+ +
+
+proc bytes.byte(i: int) : uint(8)
+

Gets a byte from the bytes

+
+
Arguments:
+

i – The index

+
+
Returns:
+

The value of the i th byte as an integer.

+
+
+
+ +
+
+iter bytes.items() : bytes
+

Iterates over the bytes, yielding ASCII characters.

+
+
Yields:
+

1-length bytes

+
+
+
+ +
+
+iter bytes.these() : uint(8)
+

Iterates over the bytes

+
+
Yields:
+

uint(8)

+
+
+
+ +
+
+iter bytes.chpl_bytes() : uint(8)
+

Iterates over the bytes byte by byte.

+
+
Yields:
+

uint(8)

+
+
+
+ +
+
+proc bytes.this(r: range(?)) : bytes
+

Slices the bytes. Halts if r is non-empty and not completely +inside the range this.indices when compiled with –checks. +–fast disables this check.

+
+
Arguments:
+

r – The range of indices the new bytes should be made +from

+
+
Returns:
+

a new bytes that is a slice within +this.indices. If the length of r is zero, an empty +bytes is returned.

+
+
+
+ +
+
+proc bytes.isEmpty() : bool
+

Checks if the bytes is empty.

+
+
Returns:
+

    +
  • true – when empty

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.startsWith(patterns: bytes ...) : bool
+

Checks if the bytes starts with any of the given arguments.

+
+
Arguments:
+

patternsbytes (s) to match against.

+
+
Returns:
+

    +
  • true–when the bytes begins with one or more of +the patterns

  • +
  • false–otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.endsWith(patterns: bytes ...) : bool
+

Checks if the bytes ends with any of the given arguments.

+
+
Arguments:
+

patternsbytes (s) to match against.

+
+
Returns:
+

    +
  • true–when the bytes ends with one or more of +the patterns

  • +
  • false–otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.find(pattern: bytes, indices: range(?) = this.indices) : int
+

Finds the argument in the bytes

+
+
Arguments:
+
    +
  • patternbytes to search for

  • +
  • indices – an optional range defining the indices to search +within, default is the whole. Halts if the range is not +within this.indices

  • +
+
+
Returns:
+

the index of the first occurrence from the left of pattern +within the bytes, or -1 if the pattern is not in the +bytes.

+
+
+
+ +
+
+proc bytes.rfind(pattern: bytes, indices: range(?) = this.indices) : int
+

Finds the argument in the bytes

+
+
Arguments:
+
    +
  • pattern – The bytes to search for

  • +
  • indices – an optional range defining the indices to search within, +default is the whole. Halts if the range is not +within this.indices

  • +
+
+
Returns:
+

the index of the first occurrence from the right of pattern +within the bytes, or -1 if the pattern is not in the +bytes.

+
+
+
+ +
+
+proc bytes.count(pattern: bytes, indices: range(?) = this.indices) : int
+

Counts the number of occurrences of the argument in the bytes

+
+
Arguments:
+
    +
  • pattern – The bytes to search for

  • +
  • indices – an optional range defining the substring to search within, +default is the whole. Halts if the range is not +within this.indices

  • +
+
+
Returns:
+

the number of times pattern occurs in the bytes

+
+
+
+ +
+
+proc bytes.replace(pattern: bytes, replacement: bytes, count: int = -1) : bytes
+

Replaces occurrences of a bytes with another.

+
+
Arguments:
+
    +
  • pattern – The bytes to search for

  • +
  • replacement – The bytes to replace pattern with

  • +
  • count – an optional argument specifying the number of replacements to +make, values less than zero will replace all occurrences

  • +
+
+
Returns:
+

a copy of the bytes where replacement replaces +pattern up to count times

+
+
+
+ +
+
+iter bytes.split(sep: bytes, maxsplit: int = -1, ignoreEmpty: bool = false) : bytes
+

Splits the bytes on sep yielding the bytes between each +occurrence, up to maxsplit times.

+
+
Arguments:
+
    +
  • sep – The delimiter used to break the bytes into chunks.

  • +
  • maxsplit – The number of times to split the bytes, +negative values indicate no limit.

  • +
  • ignoreEmpty

      +
    • true– Empty bytes will not be yielded,

    • +
    • false– Empty bytes will be yielded

    • +
    +

  • +
+
+
Yields:
+

bytes

+
+
+
+ +
+
+iter bytes.split(maxsplit: int = -1) : bytes
+

Works as above, but uses runs of whitespace as the delimiter.

+
+
Arguments:
+

maxsplit – The maximum number of times to split the bytes, +negative values indicate no limit.

+
+
Yields:
+

bytes

+
+
+
+ +
+
+proc bytes.join(const ref x: bytes ...) : bytes
+

Returns a new bytes, which is the concatenation of all of +the bytes passed in with the contents of the method +receiver inserted between them.

+
var myBytes = b"|".join(b"a",b"10",b"d");
+writeln(myBytes); // prints: "a|10|d"
+
+
+
+
Arguments:
+

xbytes values to be joined

+
+
Returns:
+

A bytes

+
+
+
+ +
+
+proc bytes.join(const ref x) : bytes
+

Returns a new bytes, which is the concatenation of all of +the bytes passed in with the contents of the method +receiver inserted between them.

+
var tup = (b"a",b"10",b"d");
+var myJoinedTuple = b"|".join(tup);
+writeln(myJoinedTuple); // prints: "a|10|d"
+
+var myJoinedArray = b"|".join([b"a",b"10",b"d"]);
+writeln(myJoinedArray); // prints: "a|10|d"
+
+
+
+
Arguments:
+

x – An array or tuple of bytes values to be joined

+
+
Returns:
+

A bytes

+
+
+
+ +
+
+proc bytes.strip(chars = b" \t\r\n", leading = true, trailing = true) : bytes
+

Strips given set of leading and/or trailing characters.

+
+
Arguments:
+
    +
  • chars – Characters to remove. Defaults to b” \t\r\n”.

  • +
  • leading – Indicates if leading occurrences should be removed. +Defaults to true.

  • +
  • trailing – Indicates if trailing occurrences should be removed. +Defaults to true.

  • +
+
+
Returns:
+

A new bytes with leading and/or trailing +occurrences of characters in chars removed as appropriate.

+
+
+
+ +
+
+proc const bytes.partition( sep: bytes) : 3*(bytes)
+

Splits the bytes on a given separator

+
+
Arguments:
+

sep – The separator

+
+
Returns:
+

a 3*bytes consisting of the section before sep, +sep, and the section after sep. If sep is not found, the +tuple will contain the whole bytes, and then two +empty bytes.

+
+
+
+ +
+
+proc bytes.dedent(columns = 0, ignoreFirst = true) : bytes
+
+

Warning

+

bytes.dedent is subject to change in the future.

+
+

Remove indentation from each line of bytes.

+

This can be useful when applied to multi-line bytes that are indented +in the source code, but should not be indented in the output.

+

When columns == 0, determine the level of indentation to remove from +all lines by finding the common leading whitespace across all non-empty +lines. Empty lines are lines containing only whitespace. Tabs and spaces +are the only whitespaces that are considered, but are not treated as +the same characters when determining common whitespace.

+

When columns > 0, remove columns leading whitespace characters +from each line. Tabs are not considered whitespace when columns > 0, +so only leading spaces are removed.

+
+
Arguments:
+
    +
  • columns – The number of columns of indentation to remove. Infer +common leading whitespace if columns == 0.

  • +
  • ignoreFirst – When true, ignore first line when determining the +common leading whitespace, and make no changes to the +first line.

  • +
+
+
Returns:
+

A new bytes with indentation removed.

+
+
+
+ +
+
+proc bytes.decode(policy = decodePolicy.strict) : string throws
+

Returns a UTF-8 string from the given bytes. If the data is +malformed for UTF-8, policy argument determines the action.

+
+
Arguments:
+

policy

    +
  • decodePolicy.strict raises an error

  • +
  • decodePolicy.replace replaces the malformed character +with UTF-8 replacement character

  • +
  • decodePolicy.drop drops the data silently

  • +
  • decodePolicy.escape escapes each illegal byte with +private use codepoints

  • +
+

+
+
Throws:
+

Throws a DecodeError if decodePolicy.strict is +passed to the policy argument and the bytes contains non-UTF-8 +characters.

+
+
Returns:
+

A UTF-8 string.

+
+
+
+ +
+
+proc bytes.isUpper() : bool
+

Checks if all the characters in the bytes are uppercase +(A-Z) in ASCII. Ignores uncased (not a letter) and extended ASCII +characters (decimal value larger than 127)

+
+
Returns:
+

    +
  • true–there is at least one uppercase and no lowercase characters

  • +
  • false–otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isLower() : bool
+

Checks if all the characters in the bytes are lowercase +(a-z) in ASCII. Ignores uncased (not a letter) and extended ASCII +characters (decimal value larger than 127)

+
+
Returns:
+

    +
  • true–there is at least one lowercase and no uppercase characters

  • +
  • false–otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isSpace() : bool
+

Checks if all the characters in the bytes are whitespace +(’ ‘, ‘\t’, ‘\n’, ‘\v’, ‘\f’, ‘\r’) in ASCII.

+
+
Returns:
+

    +
  • true – when all the characters are whitespace.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isAlpha() : bool
+

Checks if all the characters in the bytes are alphabetic +(a-zA-Z) in ASCII.

+
+
Returns:
+

    +
  • true – when the characters are alphabetic.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isDigit() : bool
+

Checks if all the characters in the bytes are digits (0-9) +in ASCII.

+
+
Returns:
+

    +
  • true – when the characters are digits.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isAlnum() : bool
+

Checks if all the characters in the bytes are alphanumeric +(a-zA-Z0-9) in ASCII.

+
+
Returns:
+

    +
  • true – when the characters are alphanumeric.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isPrintable() : bool
+

Checks if all the characters in the bytes are printable in +ASCII.

+
+
Returns:
+

    +
  • true – when the characters are printable.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.isTitle() : bool
+

Checks if all uppercase characters are preceded by uncased characters, +and if all lowercase characters are preceded by cased characters in ASCII.

+
+
Returns:
+

    +
  • true – when the condition described above is met.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc bytes.toLower() : bytes
+

Creates a new bytes with all applicable characters +converted to lowercase.

+
+
Returns:
+

A new bytes with all uppercase characters (A-Z) +replaced with their lowercase counterpart in ASCII. Other +characters remain untouched.

+
+
+
+ +
+
+proc bytes.toUpper() : bytes
+

Creates a new bytes with all applicable characters +converted to uppercase.

+
+
Returns:
+

A new bytes with all lowercase characters (a-z) +replaced with their uppercase counterpart in ASCII. Other +characters remain untouched.

+
+
+
+ +
+
+proc bytes.toTitle() : bytes
+

Creates a new bytes with all applicable characters +converted to title capitalization.

+
+
Returns:
+

A new bytes with all cased characters(a-zA-Z) +following an uncased character converted to uppercase, and all +cased characters following another cased character converted to +lowercase.

+
+
+
+ +
+
+operator :(x: string, type t: bytes)
+
+ +
+
+operator :(x: c_string, type t: bytes)
+
+

Warning

+

the type ‘c_string’ is deprecated; please use one of the ‘bytes.create*ingBuffer’ methods that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+operator bytes.+=(ref lhs: bytes, const ref rhs: bytes) : void
+

Appends the bytes rhs to the bytes lhs.

+
+ +
+
+proc ref bytes.appendByteValues(x: uint(8) ...) : void
+
+

Warning

+

‘bytes.appendByteValues’ is unstable and may change in the future

+
+

Appends the one or more byte values passed as arguments to +the bytes this.

+
+ +
+
+proc bytes.toHexadecimal(uppercase: bool = false, type resultType = bytes) : resultType
+
+

Warning

+

‘bytes.toHexadecimal’ is unstable and may change in the future

+
+

Computes a hexadecimal representation for a bytes +and returns it as a bytes.

+
+ +
+
+operator bytes.=(ref lhs: bytes, rhs: bytes) : void
+

Copies the bytes rhs into the bytes lhs.

+
+ +
+
+operator bytes.=(ref lhs: bytes, rhs_c: c_string) : void
+
+

Warning

+

the type ‘c_string’ is deprecated; please use one of the ‘bytes.create*ingBuffer’ methods that takes a ‘c_ptrConst(c_char)’ instead

+
+

Copies the c_string rhs_c into the bytes lhs.

+

Halts if lhs is a remote bytes.

+
+ +
+
+operator bytes.+(s0: bytes, s1: bytes) : bytes
+
+
Returns:
+

A new bytes which is the result of concatenating +s0 and s1

+
+
+
+ +
+
+operator bytes.+(param s0: bytes, param s1: bytes) param
+
+ +
+
+operator *(s: bytes, n: integral) : bytes
+
+
Returns:
+

A new bytes which is the result of repeating s +n times. If n is less than or equal to 0, an empty bytes is +returned.

+
+
+

The operation is commutative. +For example:

+
writeln(b"Hello! "*3);
+or
+writeln(3*b"Hello! ");
+
+
+

Results in:

+
Hello! Hello! Hello!
+
+
+
+ +
+
+operator *(n: integral, s: bytes)
+
+ +
+
+operator bytes.==(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.!=(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.<(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.>(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.<=(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.>=(a: bytes, b: bytes) : bool
+
+ +
+
+operator bytes.==(param s0: bytes, param s1: bytes) param
+
+ +
+
+operator bytes.!=(param s0: bytes, param s1: bytes) param
+
+ +
+
+operator bytes.<=(param a: bytes, param b: bytes) param
+
+ +
+
+operator bytes.>=(param a: bytes, param b: bytes) param
+
+ +
+
+operator bytes.<(param a: bytes, param b: bytes) param
+
+ +
+
+operator bytes.>(param a: bytes, param b: bytes) param
+
+ +
+
+proc bytes.hash() : uint
+
+ +
+
+operator bytes.<=>(ref x: bytes, ref y: bytes)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/BytesCasts.html b/docs/internal/modules/internal/BytesCasts.html new file mode 100644 index 000000000..9e4e62a3b --- /dev/null +++ b/docs/internal/modules/internal/BytesCasts.html @@ -0,0 +1,267 @@ + + + + + + + BytesCasts — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BytesCasts

+

Usage

+
use BytesCasts;
+
+
+

or

+
import BytesCasts;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+operator :(x: bool, type t: bytes)
+
+ +
+
+operator :(x: bytes, type t: bool) throws
+
+ +
+
+operator :(x: integral, type t: bytes)
+
+ +
+
+operator :(x: bytes, type t: integral) throws
+
+ +
+
+proc _real_cast_helper(x: real(64), param isImag: bool) : bytes
+
+ +
+
+operator :(x: chpl_anyreal, type t: bytes)
+
+ +
+
+operator :(x: chpl_anyimag, type t: bytes)
+
+ +
+
+operator :(x: bytes, type t: chpl_anyreal) throws
+
+ +
+
+operator :(x: bytes, type t: chpl_anyimag) throws
+
+ +
+
+operator :(x: chpl_anycomplex, type t: bytes)
+
+ +
+
+operator :(x: bytes, type t: chpl_anycomplex) throws
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/BytesStringCommon.html b/docs/internal/modules/internal/BytesStringCommon.html new file mode 100644 index 000000000..e3c1cf51f --- /dev/null +++ b/docs/internal/modules/internal/BytesStringCommon.html @@ -0,0 +1,646 @@ + + + + + + + BytesStringCommon — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

BytesStringCommon

+

Usage

+
use BytesStringCommon;
+
+
+

or

+
import BytesStringCommon;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+const CHPL_SHORT_STRING_SIZE : c_int
+
+ +
+
+record chpl__inPlaceBuffer
+
+ +
+
+proc chpl__getInPlaceBufferData(const ref data: chpl__inPlaceBuffer) : bufferType
+
+ +
+
+proc chpl__getInPlaceBufferDataForWrite(ref data: chpl__inPlaceBuffer) : bufferType
+
+ +
+
+record __serializeHelper
+
+
+var buffLen : int
+
+ +
+
+var buff : bufferType
+
+ +
+
+var size : int
+
+ +
+
+var locale_id : chpl_nodeID.type
+
+ +
+
+var shortData : chpl__inPlaceBuffer
+
+ +
+
+var cachedNumCodepoints : int
+
+ +
+ +
+
+enum decodePolicy { strict, replace, drop, escape }
+

decodePolicy specifies what happens when there is malformed characters +when decoding a Bytes into a UTF-8 string.

+
+
    +
  • strict: default policy; raise error

  • +
  • replace: replace with UTF-8 replacement character

  • +
  • drop: silently drop data

  • +
  • +
    escape: escape invalid data by replacing each byte 0xXX with

    codepoint 0xDCXX

    +
    +
    +
  • +
+
+
+
+enum constant strict
+
+ +
+
+enum constant replace
+
+ +
+
+enum constant drop
+
+ +
+
+enum constant escape
+
+ +
+ +
+
+enum encodePolicy { unescape, pass }
+

encodePolicy specifies what happens when there is escaped non-UTF8 +bytes when encoding a string into a +Bytes.

+
+
    +
  • pass: default policy; copy directly

  • +
  • unescape: recover the original data from the escaped data

  • +
+
+
+
+enum constant unescape
+
+ +
+
+enum constant pass
+
+ +
+ +
+
+config param showStringBytesInitDeprWarnings = true
+
+ +
+
+param surrogateEscape = 0xdc : byteType
+
+ +
+
+proc getCStr(const ref x: ?t) : c_ptrConst(c_char)
+
+ +
+
+proc decodeByteBuffer(buff: bufferType, length: int, policy: decodePolicy) throws
+

This function is called by bytes.decode and string factory functions that +take a C array as the buffer.

+

It iterates over the buffer, trying to decode codepoints out of it. If there +is an illegal sequence that doesn’t correspond to any valid codepoint, the +behavior is determined by the policy argument. See the decodePolicy +documentation above for the meaning of different policies.

+
+ +
+
+proc decodeHelp(buff: c_ptr(uint(8)), buffLen: int, offset: int, allowEsc: bool)
+

This function decodeHelp is used to create a wrapper for +qio_decode_char_buf* and qio_decode_char_buf_esc and return +the value of errorCode , cp and nBytes.

+
+
+
arg buff:
+

Buffer to decode

+
+
arg buffLen:
+

Size of buffer

+
+
arg offset:
+

Starting index of read buffer,

+
+
arg allowEsc:
+

Choice between “qio_decode_char_buf” +and “qio_decode_char_buf_esc” that allows +escaped sequences in the string

+
+
+
+
+
Returns:
+

Tuple of decodeRet, chr and nBytes +decodeRet : error code : errorCode +chr : corresponds to codepoint +nBytes : number of bytes of corresponding UTF-8 encoding

+
+
+
+ +
+
+proc initWithBorrowedBuffer(ref x: ?t, other: t)
+
+ +
+
+proc initWithBorrowedBuffer(ref x: ?t, other: bufferType, length: int, size: int)
+
+ +
+
+proc initWithOwnedBuffer(ref x: ?t, other: bufferType, length: int, size: int)
+
+ +
+
+proc initWithNewBuffer(ref x: ?t, other: t)
+
+ +
+
+proc initWithNewBuffer(ref x: ?t, other: bufferType, length: int, size: int)
+
+ +
+
+proc getView(const ref x: ?t, r: range(?), param checkMisaligned = true) throws
+
+ +
+
+proc getSlice(const ref x: ?t, r: range(?)) throws
+
+ +
+
+proc getIndexType(type t) type
+
+ +
+
+proc doReplace(const ref x: ?t, needle: t, replacement: t, count: int = -1) : t
+
+ +
+
+proc doSplitHelp(const ref localx: ?t, const ref localSep: t, const maxsplit: int = -1, const ignoreEmpty: bool = false, ref start: getIndexType(t), const splitCount: int) : t
+
+ +
+
+iter doSplit(const ref x: ?t, sep: t, maxsplit: int = -1, ignoreEmpty: bool = false) : t
+
+ +
+
+proc doSplitWSNoEncHelp(const ref localx: ?t, maxsplit: int = -1, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex) : t
+
+ +
+
+iter doSplitWSNoEnc(const ref x: ?t, maxsplit: int = -1) : t
+
+ +
+
+proc doSearchNoEnc(const ref x: ?t, needle: t, region: range(?), param count: bool, param fromLeft: bool = true)
+
+ +
+
+proc startsEndsWith(const ref x: ?t, needles, param fromLeft: bool) : bool  where isHomogeneousTuple(needles) && needles[0].type == t
+
+ +
+
+proc doJoinIterator(const ref x: ?t, ir: _iteratorRecord) : t
+
+ +
+
+proc doJoin(const ref x: ?t, const ref S) : t  where isTuple(S) || isArray(S)
+
+ +
+
+proc doPartition(const ref x: ?t, sep: t) : 3*(t)
+
+ +
+
+proc doDedent(const ref x: ?t, columns = 0, ignoreFirst = true) : t
+
+ +
+
+proc resizeBufferForAppend(ref lhs: ?t, n: int) : int
+
+ +
+
+proc doAppend(ref lhs: ?t, const ref rhs: t)
+
+ +
+
+proc doAppendSomeBytes(ref lhs: ?t, n: int, byteCArr: c_array(uint(8), ?), nCodepoints: int)
+

Take n bytes from byteCArr and append it to the string/bytes +in lhs

+
+ +
+
+proc resizeBuffer(ref lhs: ?t, buffLen: int)
+
+ +
+
+proc reinitWithNewBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0)
+
+ +
+
+proc reinitWithOwnedBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0)
+
+ +
+
+proc doAssign(ref lhs: ?t, rhs: t)
+
+ +
+
+proc doMultiply(const ref x: ?t, n: integral)
+
+ +
+
+proc doConcat(s0: ?t, s1: t) : t
+
+ +
+
+proc doStripNoEnc(const ref x: ?t, chars: t, leading: bool, trailing: bool) : t
+
+ +
+
+proc doEq(a: ?t1, b: ?t2)
+
+ +
+
+proc doLessThan(a: ?t1, b: ?t2)
+
+ +
+
+proc doGreaterThan(a: ?t1, b: ?t2)
+
+ +
+
+proc doLessThanOrEq(a: ?t1, b: ?t2)
+
+ +
+
+proc doGreaterThanOrEq(a: ?t1, b: ?t2)
+
+ +
+
+proc getHash(x: ?t)
+
+ +
+
+proc countNumCodepoints(x: string)
+
+ +
+
+proc countNumCodepoints(buff: bufferType, buffLen: int)
+
+ +
+
+proc isInitialByte(b: uint(8)) : bool
+

Returns true if the argument is a valid initial byte of a UTF-8 +encoded multibyte character.

+
+ +
+
+proc _findStartOfNextCodepointFromByte(x: string, i: byteIndex)
+

Returns the byte index of the beginning of the first codepoint starting from +(and including) i

+
+ +
+
+proc _cleanupForNumericCast(ref x: ?t)
+
+ +
+
+proc byte_isAscii(c: byteType) : bool
+
+ +
+
+proc byte_isWhitespace(c: byteType) : bool
+
+ +
+
+proc byte_isPrintable(c: byteType) : bool
+
+ +
+
+proc byte_isAlpha(c: byteType) : bool
+
+ +
+
+proc byte_isUpper(c: byteType) : bool
+
+ +
+
+proc byte_isLower(c: byteType) : bool
+
+ +
+
+proc byte_isDigit(c: byteType) : bool
+
+ +
+
+proc byte_isAlnum(c: byteType) : bool
+
+ +
+
+proc byte_toUpper(c: byteType) : byteType
+
+ +
+
+proc byte_toLower(c: byteType) : byteType
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/CString.html b/docs/internal/modules/internal/CString.html new file mode 100644 index 000000000..fba6b1e3a --- /dev/null +++ b/docs/internal/modules/internal/CString.html @@ -0,0 +1,360 @@ + + + + + + + CString — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CString

+

Usage

+
use CString;
+
+
+

or

+
import CString;
+
+
+
+
+proc chpl__initCopy(x: chpl_c_string, definedConst: bool) : chpl_c_string
+
+ +
+
+proc chpl__autoCopy(x: chpl_c_string, definedConst: bool) : chpl_c_string
+
+ +
+
+operator chpl_c_string.==(s0: chpl_c_string, s1: chpl_c_string)
+
+ +
+
+operator chpl_c_string.!=(s0: chpl_c_string, s1: chpl_c_string)
+
+ +
+
+operator chpl_c_string.<=(a: chpl_c_string, b: chpl_c_string)
+
+ +
+
+operator chpl_c_string.>=(a: chpl_c_string, b: chpl_c_string)
+
+ +
+
+operator chpl_c_string.<(a: chpl_c_string, b: chpl_c_string)
+
+ +
+
+operator chpl_c_string.>(a: chpl_c_string, b: chpl_c_string)
+
+ +
+
+operator chpl_c_string.=(ref a: chpl_c_string, b: chpl_c_string)
+
+ +
+
+operator chpl_c_string.=(ref a: chpl_c_string, b: _nilType)
+
+ +
+
+operator chpl_c_string.=(ref a: chpl_c_string, b: string)
+
+ +
+
+operator :(x: _nilType, type t: chpl_c_string)
+
+ +
+
+operator :(x: chpl_c_string, type t: c_ptr(void))
+
+ +
+
+operator :(x: c_ptr(void), type t: chpl_c_string)
+
+ +
+
+operator :(x: chpl_c_string, type t: c_ptr(?eltType))   where eltType == c_char || eltType == int(8) || eltType == uint(8)
+
+ +
+
+operator :(x: chpl_c_string, type t: c_ptrConst(?eltType))   where eltType == c_char || eltType == int(8) || eltType == uint(8)
+
+ +
+
+operator :(x: c_ptr(?eltType), type t: chpl_c_string)   where eltType == c_char || eltType == int(8) || eltType == uint(8)
+
+ +
+
+operator :(x: c_ptrConst(?eltType), type t: chpl_c_string)   where eltType == c_char || eltType == int(8) || eltType == uint(8)
+
+ +
+
+operator :(x: chpl_c_string, type t: bool) throws
+
+ +
+
+operator :(x: chpl_c_string, type t: integral) throws
+
+ +
+
+operator :(x: chpl_c_string, type t: chpl_anyreal) throws
+
+ +
+
+operator :(x: chpl_c_string, type t: chpl_anyimag) throws
+
+ +
+
+operator :(x: chpl_c_string, type t: chpl_anycomplex) throws
+
+ +
+
+proc chpl_c_string.size
+
+ +
+
+proc chpl_c_string.substring(i: int)
+
+ +
+
+proc chpl_c_string.substring(r: range(?))
+
+ +
+
+proc param chpl_c_string.size param
+
+ +
+
+proc _string_contains(param a: chpl_c_string, param b: chpl_c_string) param
+
+ +
+
+proc chpl_c_string.indexOf(substring: chpl_c_string) : int
+

Returns the index of the first occurrence of a substring within a string, +or 0 if the substring is not in the string.

+
+ +
+
+proc string_index_of(haystack: chpl_c_string, needle: chpl_c_string) : int
+
+ +
+
+proc chpl_free_c_string(ref cs: chpl_c_string)
+
+ +
+
+proc chpl_c_string.serialize(writer, ref serializer) throws
+
+ +
+
+proc chpl_c_string.deserialize(reader, ref deserializer) throws
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelArray.html b/docs/internal/modules/internal/ChapelArray.html new file mode 100644 index 000000000..4331aed39 --- /dev/null +++ b/docs/internal/modules/internal/ChapelArray.html @@ -0,0 +1,1880 @@ + + + + + + + ChapelArray — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelArray

+

Usage

+
use ChapelArray;
+
+
+

or

+
import ChapelArray;
+
+
+
+
+var numPrivateObjects : chpl__processorAtomicType(int)
+
+ +
+
+param nullPid = -1
+
+ +
+
+config param debugBulkTransfer = false
+
+ +
+
+config param useBulkTransfer = true
+
+ +
+
+config param useBulkTransferStride = true
+
+ +
+
+config param useBulkPtrTransfer = useBulkTransfer
+
+ +
+
+config param disableConstDomainOpt = false
+
+ +
+
+config param debugOptimizedSwap = false
+
+ +
+
+config param PODValAccess = true
+
+ +
+
+config param useBulkTransferDist = false
+
+ +
+
+config param arrayAsVecGrowthFactor = 1.5
+
+ +
+
+config param debugArrayAsVec = false
+
+ +
+
+config param logDistArrEltAccess = false
+
+ +
+
+config param logAllArrEltAccess = false
+
+ +
+
+proc _isPrivatized(value) param
+
+ +
+
+proc _newPrivatizedClass(value) : int
+
+ +
+
+proc _freePrivatizedClass(pid: int, original: RootClass) : void
+
+ +
+
+proc _reprivatize(value) : void
+
+ +
+
+proc _makeIndexTuple(param rank, t: _tuple, param concept: string, param expand: bool = false)
+
+ +
+
+proc _makeIndexTuple(param rank, val: integral, param concept: string, param expand: bool = false)
+
+ +
+
+proc _makeIndexTuple(param rank, val, param concept: string, param expand: bool = false)
+
+ +
+
+proc _newArray(value)
+
+ +
+
+proc _getDistribution(value)
+
+ +
+
+proc chpl__buildArrayRuntimeType(dom: domain, type eltType) type
+
+ +
+
+proc chpl__convertRuntimeTypeToValue(dom: domain, type eltType, param isNoInit: bool, definedConst: bool)
+
+ +
+
+proc chpl__convertValueToRuntimeType(arr: []) type
+
+ +
+
+config param CHPL_WARN_DOMAIN_LITERAL = "unset"
+
    +
  • Support for array literal expressions.

  • +
  • +
  • Array literals are detected during parsing and converted

  • +
  • to a call expr. Array values pass through the various

  • +
  • compilation phases as regular parameters.

  • +
  • +
  • NOTE: It would be nice to define a second, less specific, function

  • +
  • to handle the case of multiple types, however this is not

  • +
  • possible atm due to using var args with a query type.

  • +
+
+ +
+
+config param arrayLiteralLowBound = defaultLowBound
+
+ +
+
+config param capturedIteratorLowBound = defaultLowBound
+
+ +
+
+proc chpl__buildArrayExpr(in elems ...?k)
+
+ +
+
+proc chpl_computeUnifiedType(x: _tuple) type
+
+ +
+
+proc chpl_computeUnifiedTypeHelp(x: _tuple, j: int = 0)
+
+ +
+
+proc chpl__buildAssociativeArrayExpr(const elems ...?k)
+
+ +
+
+proc chpl_incRefCountsForDomainsInArrayEltTypes(arr: unmanaged(BaseArr), type eltType)
+
+ +
+
+proc chpl_decRefCountsForDomainsInArrayEltTypes(arr: unmanaged(BaseArr), type eltType)
+
+ +
+
+proc chpl__distributed(d, dom: domain, definedConst: bool)
+
+ +
+
+proc chpl__distributed(d, expr, definedConst: bool)
+
+ +
+
+proc chpl__isArrayView(arr) param
+
+ +
+
+proc chpl__getActualArray(arr)
+
+ +
+
+proc chpl__isDROrDRView(arg) param
+
+ +
+
+proc chpl__isDomainView(dom) param
+
+ +
+
+proc chpl__getActualDomain(dom)
+
+ +
+
+proc chpl__distributed(d, type domainType, definedConst: bool) type
+
+ +
+
+proc chpl__distributionFromDomainRuntimeType(type rtt)
+
+ +
+
+proc chpl__eltTypeFromArrayRuntimeType(type rtt) type
+
+ +
+
+proc chpl__instanceTypeFromArrayRuntimeType(type rtt) type
+
+ +
+
+proc chpl__instanceTypeFromDomainRuntimeType(type rtt) type
+
+ +
+
+proc chpl__buildIndexType(param rank: int, type idxType) type  where rank == 1
+
+ +
+
+proc chpl__buildIndexType(param rank: int, type idxType) type  where rank > 1
+
+ +
+
+proc chpl__buildIndexType(param rank: int) type
+
+ +
+
+proc chpl__buildIndexType(d: domain) type
+
+ +
+
+proc chpl__checkRetEltTypeMatch(a: [], type b)
+
+ +
+
+proc chpl__checkRetEltTypeMatch(a: _iteratorRecord, type b)
+
+ +
+
+proc chpl__checkOutEltTypeMatch(a: [], type b)
+
+ +
+
+proc chpl__checkOutEltTypeMatch(a: _iteratorRecord, type b)
+
+ +
+
+record dmap
+
+

Warning

+

the type ‘dmap’ is unstable, instead please use distribution factory functions when available

+
+
+ +
+
+proc chpl__buildDistType(type t) type  where isSubtype(_to_borrowed(t), BaseDist)
+
+ +
+
+proc chpl__buildDistType(type t: record) type
+
+ +
+
+proc chpl__buildDistType(type t)
+
+ +
+
+proc chpl__buildDistValue(x: unmanaged)   where isSubtype(x.borrow().type, BaseDist)
+
+ +
+
+proc chpl__buildDistValue(in x: owned)   where isSubtype(x.borrow().type, BaseDist)
+
+ +
+
+proc chpl__buildDistValue(const ref x: record) const ref
+
+ +
+
+proc chpl__buildDistValue(x)
+
+ +
+
+proc chpl__buildDistDMapValue(const ref x: record) const ref
+
+ +
+
+proc chpl__buildDistDMapValue(x: unmanaged)   where isSubtype(x.borrow().type, BaseDist)
+
+ +
+
+proc chpl__buildDistDMapValue(in x: owned)   where isSubtype(x.borrow().type, BaseDist)
+
+ +
+
+operator ==(d1: _distribution(?), d2: _distribution(?))
+
+ +
+
+operator ==(d1: _distribution(?), d2: record) param
+
+ +
+
+operator ==(d1: record, d2: _distribution(?)) param
+
+ +
+
+operator !=(d1: _distribution(?), d2: _distribution(?))
+
+ +
+
+operator !=(d1: _distribution(?), d2: record) param
+
+ +
+
+operator !=(d1: record, d2: _distribution(?)) param
+
+ +
+
+proc chpl_defaultComparator()
+
+ +
+
+proc shouldReturnRvalueByValue(type t) param
+
+ +
+
+record _array : writeSerializable, readDeserializable
+

The array type

+
+
+var _pid : int
+
+ +
+
+var _instance
+
+ +
+
+var _unowned : bool
+
+ +
+
+proc chpl__serialize()   where _instance.chpl__rvfMe()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+proc chpl__promotionType() type
+
+ +
+
+proc _value
+
+ +
+
+proc deinit()
+
+ +
+
+proc eltType type
+

The type of elements contained in the array

+
+ +
+
+proc idxType type
+

The type used to represent the array’s indices. For a +multidimensional array, this is the per-dimension type used.

+
+ +
+
+proc fullIdxType type
+

The type used to represent the array’s indices. For a +1-dimensional or associative array, this will be the same as +idxType above. For a multidimensional array, it will be +rank * idxType.

+
+ +
+
+proc _dom
+
+ +
+
+proc rank param
+

The number of dimensions in the array

+
+ +
+
+proc strides param
+

The strides value of the underlying domain

+
+ +
+
+proc hasUnitStride() param
+
+ +
+
+proc hasPosNegUnitStride() param
+
+ +
+
+proc indices  where !this.isSparse() && !this.isAssociative()
+

Return a dense rectangular array’s indices as a default domain.

+
+ +
+
+iter indices  where this.isSparse() || this.isAssociative()
+

Yield an irregular array’s indices.

+
+ +
+
+proc checkAccess(indices, value)
+
+ +
+
+proc checkSlice(d: domain, value)
+
+ +
+
+proc checkSlice(ranges ...rank, value)   where chpl__isTupleOfRanges(ranges)
+
+ +
+
+proc ref this(const i: rank*_value.dom.idxType) ref
+
+ +
+
+proc const this(const i: rank*_value.dom.idxType)  where shouldReturnRvalueByValue(_value.eltType)
+
+ +
+
+proc const this(const i: rank*_value.dom.idxType) const ref
+
+ +
+
+proc ref this(const i: _value.dom.idxType ...rank) ref
+
+ +
+
+proc const this(const i: _value.dom.idxType ...rank)  where shouldReturnRvalueByValue(_value.eltType)
+
+ +
+
+proc const this(const i: _value.dom.idxType ...rank) const ref
+
+ +
+
+proc ref localAccess(i: rank*_value.dom.idxType) ref
+
+ +
+
+proc const localAccess( i: rank*_value.dom.idxType)  where shouldReturnRvalueByValue(_value.eltType)
+
+ +
+
+proc const localAccess( i: rank*_value.dom.idxType) const ref
+
+ +
+
+proc ref localAccess(i: _value.dom.idxType ...rank) ref
+
+ +
+
+proc const localAccess(i: _value.dom.idxType ...rank)  where shouldReturnRvalueByValue(_value.eltType)
+
+ +
+
+proc const localAccess(i: _value.dom.idxType ...rank) const ref
+
+ +
+
+proc this(d: domain)
+
+ +
+
+proc this(ranges ...rank)   where chpl__isTupleOfRanges(ranges)
+
+ +
+
+proc this(args ...rank)   where _validRankChangeArgs(args, _value.dom.idxType)
+
+ +
+
+proc dims()
+

Return a tuple of ranges describing the bounds of a rectangular domain. +For a sparse domain, return the bounds of the parent domain.

+
+ +
+
+proc dim(d: int)
+

Return a range representing the boundary of this +domain in a particular dimension.

+
+ +
+
+proc dim(param d: int)
+
+ +
+
+proc checkRankChange(args)
+
+ +
+
+proc localSlice(r ...rank)   where chpl__isDROrDRView(this) && chpl__isTupleOfRanges(r)
+
+ +
+
+proc localSlice(d: domain)   where chpl__isDROrDRView(this)
+
+ +
+
+proc tryCopy() throws
+
+

Warning

+

tryCopy() is subject to change in the future.

+
+
+ +
+
+proc chpl__localSliceDefaultArithArrHelp(d: domain)
+
+ +
+
+proc localSlice(r ...rank)   where chpl__isTupleOfRanges(r) && !chpl__isDROrDRView(this)
+
+ +
+
+proc localSlice(d: domain)
+
+ +
+
+iter these() ref
+

Yield the array elements

+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis, param fast: bool = false) ref  where tag == iterKind.follower
+
+ +
+
+proc size : int
+

Return the number of elements in the array

+
+ +
+
+proc sizeAs(type t: integral) : t
+

Return the number of elements in the array as the specified type.

+
+ +
+
+proc chpl_checkArrArgDoms(formalDom: domain, param runtimeChecks: bool)
+
+ +
+
+proc reindex(newDomain: domain)   where this.domain.isRectangular() && newDomain.isRectangular()
+

Return an array view over a new domain. The new domain must be +of the same rank and size as the original array’s domain.

+

For example:

+
var A: [1..10] int;
+const D = {6..15};
+ref reA = A.reindex(D);
+reA[6] = 1; // updates A[1]
+
+
+
+ +
+
+proc reindex(newDims ...)   where this.domain.isRectangular()
+

Return an array view over a new domain defined implicitly +by one or more newDims, which must be ranges. The new domain must be +of the same rank and size as the original array’s domain.

+

For example:

+
var A: [3..4, 5..6] int;
+ref reA = A.reindex(13..14, 15..16);
+reA[13,15] = 1; // updates A[3,5]
+
+
+
+ +
+
+proc reindex(d: domain)
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+proc ref deserialize(reader, ref deserializer) throws
+
+ +
+
+proc type deserializeFrom(reader, ref deserializer) throws
+
+ +
+
+proc IRV  where !this.isSparse()
+

Return the Implicitly Represented Value for sparse arrays

+
+ +
+
+proc IRV ref  where this.isSparse()
+
+ +
+
+proc displayRepresentation()
+
+ +
+
+proc targetLocales() const ref
+

Return an array of locales over which this array has been distributed.

+
+ +
+
+proc hasSingleLocalSubdomain() param
+
+

Warning

+

‘hasSingleLocalSubdomain’ on arrays is unstable and may change in the future

+
+

Return true if the local subdomain can be represented as a single +domain. Otherwise return false.

+
+ +
+
+proc localSubdomain(loc: locale = here)
+

Return the subdomain that is local to loc.

+
+
Arguments:
+

loc : locale – indicates the locale for which the query should take +place (defaults to here)

+
+
+
+ +
+
+iter localSubdomains(loc: locale = here)
+
+

Warning

+

‘localSubdomains’ on arrays is unstable and may change in the future

+
+

Yield the subdomains that are local to loc.

+
+
Arguments:
+

loc : locale – indicates the locale for which the query should take +place (defaults to here)

+
+
+
+ +
+
+proc chpl__isDense1DArray() param
+
+ +
+
+proc isEmpty() : bool
+

Return true if the array has no elements

+
+ +
+
+proc last
+

Return the last element in the array. The array must be a +rectangular 1-D array.

+
+ +
+
+proc first
+

Return the first element in the array. The array must be a +rectangular 1-D array.

+
+ +
+
+proc find(val: eltType, ref idx: fullIdxType) : bool
+

Search an array for val, returning whether or not it is +found. If the value is found, the index storing it is returned +in idx. If multiple copies of it are found, the +lexicographically earliest index will be returned. If it is not +found, the resulting value of idx is unspecified.

+
+ +
+
+proc find(val: eltType) : fullIdxType
+

Search a rectangular array with integral indices for val, +returning the index where it is found. If the array contains +multiple copies of val, the lexicographically earliest index +will be returned. If val is not found, +domain.lowBound-1 will be returned instead.

+

Note that for arrays with idxType=int(?w) (signed int +indices), if the low bound in a dimension is min(int(w)), +the result will not be well-defined.

+
+ +
+
+proc count(val: this.eltType) : int
+

Return the number of times val occurs in the array.

+
+ +
+
+proc shape : rank*int  where this.isRectangular() || this.isSparse()
+

Return a tuple of integers describing the size of each dimension. +For a sparse array, returns the shape of the parent domain.

+
+ +
+
+proc shape  where this.isAssociative()
+

Associative domains assumed to be 1-D.

+
+ +
+
+proc shape
+

Unsupported case

+
+ +
+
+proc _scan(op)   where Reflection.canResolveMethod(_value, "doiScan", op, this.domain)
+
+ +
+
+proc iteratorYieldsLocalElements() param
+
+ +
+
+proc chpl_isNonDistributedArray() param
+
+ +
+
+proc isRectangular() param
+

Return true if the argument a is an array with a rectangular +domain. Otherwise return false.

+
+ +
+
+proc isIrregular() param
+

Return true if a is an array with an irregular domain; e.g. not +rectangular. Otherwise return false.

+
+ +
+
+proc isAssociative() param
+

Return true if a is an array with an associative domain. Otherwise +return false.

+
+ +
+
+proc isSparse() param
+

Return true if a is an array with a sparse domain. Otherwise +return false.

+
+ +
+ +
+
+proc _do_destroy_arr(_unowned: bool, _instance, deinitElts = true)
+
+ +
+
+proc _do_destroy_array(array: _array, deinitElts = true)
+
+ +
+
+proc _deinitElementsIsParallel(type eltType, size: integral)
+
+ +
+
+proc _deinitElements(ref array: _array)
+
+ +
+
+proc _array.equals(that: _array) : bool
+
+

Warning

+

the ‘Array.equals()’ method is unstable

+
+

Return true if all this array is the same size and shape +as argument that and all elements of this array are +equal to the corresponding element in that. Otherwise +return false.

+
+ +
+
+operator :(param arg, type t: _array)
+
+ +
+
+operator :(x: [], type t: string)
+
+

Warning

+

casting arrays to string is deprecated; please use ‘try! “%?”.format()’ from IO.FormattedIO instead

+
+
+ +
+
+operator :(in x: [] ?et, type t: et)   where t == et
+
+ +
+
+operator #( arr: [],  counts: integral)
+
+ +
+
+operator #( arr: [],  counts: _tuple)
+
+ +
+
+operator #( arr: [],  counts)
+
+ +
+
+proc isCollapsedDimension(r: range(?e, ?b, ?s, ?a)) param
+
+ +
+
+proc isCollapsedDimension(r) param
+
+ +
+
+proc chpl__countRanges(arg) param
+
+ +
+
+proc chpl__countRanges(arg, args ...) param
+
+ +
+
+proc _validRankChangeArgs(args, type idxType) param
+
+ +
+
+operator =(ref a: _distribution, b: _distribution)
+
+

Warning

+

assignment between distributions is currently unstable due to lack of testing

+
+
+ +
+
+proc chpl__serializeAssignment(a, b) param
+
+ +
+
+proc chpl__compatibleForBulkTransfer(a, b, param kind: _tElt) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(type t) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: string) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: bytes) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: sync) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: single) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: domain) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: []) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: _distribution) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: locale) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: chpl_anycomplex) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x: borrowed(RootClass)) param
+
+ +
+
+proc chpl__supportedDataTypeForBulkTransfer(x) param
+
+ +
+
+proc checkArrayShapesUponAssignment(a, b, forSwap = false)
+
+ +
+
+operator =(ref a: [], b: [])
+
+ +
+
+operator =(ref a: chpl__protoSlice, b: chpl__protoSlice)
+
+ +
+
+enum _tElt { move, initCopy, assign }
+
+
+enum constant move
+
+ +
+
+enum constant initCopy
+
+ +
+
+enum constant assign
+
+ +
+ +
+
+proc chpl__uncheckedArrayTransfer(ref a, b, param kind)
+
+ +
+
+proc chpl__initAfterBulkTransfer(ref a, param kind)
+
+ +
+
+proc chpl__compatibleForWidePtrBulkTransfer(a, b, param kind = _tElt.assign) param
+
+ +
+
+proc chpl__bulkTransferPtrArray(ref a: [], b: [])
+
+ +
+
+proc chpl__bulkTransferArray(ref a: [?AD],  b: [?BD])
+
+ +
+
+proc chpl__bulkTransferArray(ref a: chpl__protoSlice, b: chpl__protoSlice)
+
+ +
+
+proc chpl__bulkTransferArray(ref a: [], AD, const ref b: [], BD)
+
+ +
+
+proc chpl__bulkTransferArray(destClass, destView, srcClass, srcView)
+
+ +
+
+proc chpl__transferArray(ref a, const ref b, param kind = _tElt.assign, param alwaysSerialize = false)
+
+ +
+
+proc chpl__transferArray(ref a: [], param b, param kind = _tElt.assign)
+
+ +
+
+operator =(ref a: [], b: domain)
+
+ +
+
+operator =(ref a: [], b: range(?))
+
+ +
+
+operator =(ref a: [], b: _iteratorRecord)
+
+ +
+
+operator =(ref a: [], b: ?t)   where !(isTupleType(t) || isCoercible(t, _desync(a.eltType)))
+
+ +
+
+operator =(ref a: [], b: _tuple)   where a.isRectangular()
+
+ +
+
+proc _desync(type t: _syncvar) type
+
+ +
+
+proc _desync(type t: _singlevar) type
+
+ +
+
+proc _desync(type t) type  where isAtomicType(t)
+
+ +
+
+proc _desync(type t: _array) type
+
+
Or, we could explicitly overload for each atomic type since there

are a fixed number

+
+
proc _desync(type t: atomic int) type {

return int;

+
+
+

}

+
+ +
+
+proc _desync(type t) type
+
+ +
+
+operator =(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator =(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

Direct assignment to ‘sync’ variables is deprecated; apply a ‘write??()’ method to modify one

+
+
+ +
+
+operator =(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

Direct assignment to ‘single’ variables is deprecated; apply ‘.writeEF()’ to modify one

+
+
+ +
+
+operator +=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator +=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator +=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator -=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator -=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator -=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator *=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator *=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator *=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator /=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator /=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator /=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator %=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator %=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator %=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator **=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator **=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator **=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator &=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator &=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator &=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator |=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator |=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator |=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator ^=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator ^=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator ^=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator >>=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator >>=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator >>=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator <<=(ref a: [], b: _desync(a.eltType))
+
+ +
+
+operator <<=(ref a: [], b: _desync(a.eltType))   where isSyncType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator <<=(ref a: [], b: _desync(a.eltType))   where isSingleType(a.eltType)
+
+

Warning

+

‘op=’ assignments to ‘single’ variables are deprecated; add explicit ‘.read??’/’.writeEF’ methods to modify one

+
+
+ +
+
+operator <=>(ref x: [?xD], ref y: [?yD])
+
+ +
+
+proc reshape(A: [], D: domain)
+

Return a copy of the array A containing the same values but +in the shape of the domain D. The number of indices in the +domain must equal the number of elements in the array. The +elements of A are copied into the new array using the +default iteration orders over D and A.

+
+ +
+
+proc reshape(A: _iteratorRecord, D: domain)
+
+ +
+
+iter linearize(Xs)
+
+ +
+
+proc chpl__initCopy(const ref rhs: domain, definedConst: bool)   where rhs.isRectangular()
+
+ +
+
+proc chpl__initCopy(const ref rhs: domain, definedConst: bool)   where rhs.isAssociative()
+
+ +
+
+proc chpl__initCopy(const ref rhs: domain, definedConst: bool)   where rhs.isSparse()
+
+ +
+
+proc chpl__autoCopy(const ref x: domain, definedConst: bool)
+
+ +
+
+param localizeConstDomains = false
+
+ +
+
+param debugLocalizedConstDomains = false
+
+ +
+
+proc chpl__initCopy(const ref rhs: [], definedConst: bool)
+
+ +
+
+proc chpl__autoCopy(x: [], definedConst: bool)
+
+ +
+
+proc chpl__coerceHelp(type dstType: domain, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: _array, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs: _array, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: _domain, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs: _domain, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: range(?), definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs: range(?), definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: desyncEltType(dstType), definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs: desyncEltType(dstType), definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, rhs: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _array, rhs, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _array, in rhs, definedConst: bool)
+
+ +
+
+proc chpl__unref(x: [])   where chpl__isArrayView(x._value)
+
+ +
+
+proc chpl__unref(ir: _iteratorRecord)
+
+ +
+
+proc chpl__unref(x: [])
+
+ +
+
+proc chpl__initCopy(ir: _iteratorRecord, definedConst: bool)   where chpl_iteratorHasDomainShape(ir)
+
+ +
+
+proc chpl__initCopy(ir: _iteratorRecord, definedConst: bool)   where chpl_iteratorHasRangeShape(ir) && !chpl_iteratorFromForExpr(ir)
+
+ +
+
+proc chpl__initCopy_shapeHelp(shape: domain, ir: _iteratorRecord)
+
+ +
+
+proc chpl__throwErrorUnchecked(in e: owned(Error)) throws
+
+ +
+
+proc chpl__initCopy(ir: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl_arrayToPtrErrorHelper(const ref arr: [])
+
+ +
+
+proc chpl_arrayToPtr(ref arr: [], param castToVoidStar: bool = false)
+
+ +
+
+proc chpl_arrayToPtrConst(const ref arr: [], param castToVoidStar: bool = false)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelArrayViewElision.html b/docs/internal/modules/internal/ChapelArrayViewElision.html new file mode 100644 index 000000000..af6588e2e --- /dev/null +++ b/docs/internal/modules/internal/ChapelArrayViewElision.html @@ -0,0 +1,377 @@ + + + + + + + ChapelArrayViewElision — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelArrayViewElision

+

Usage

+
use ChapelArrayViewElision;
+
+
+

or

+
import ChapelArrayViewElision;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+proc chpl__createProtoSlice(ref Arr, slicingExprs ...)   where chpl__createProtoSliceArgCheck(Arr, slicingExprs)
+
+ +
+
+proc chpl__createConstProtoSlice(const ref Arr, slicingExprs ...)   where chpl__createProtoSliceArgCheck(Arr, slicingExprs)
+
+ +
+
+proc chpl__createProtoSlice(x, slicingExprs ...)
+
+ +
+
+proc chpl__createConstProtoSlice(x, slicingExprs ...)
+
+ +
+
+proc chpl__ave_exprCanBeProtoSlice(base, idxExprs ...) param : bool
+
+ +
+
+proc chpl__ave_protoSlicesSupportAssignment(a: chpl__protoSlice, b: chpl__protoSlice) param : bool
+
+ +
+
+record chpl__protoSlice
+
+
+param rank
+
+ +
+
+param isConst
+
+ +
+
+var ptrToArr
+
+ +
+
+type slicingExprType
+
+ +
+
+var ranges
+
+ +
+
+param isRankChange = false
+
+ +
+
+proc init()
+
+ +
+
+proc init(param isConst, ptrToArr, slicingExprs)
+
+ +
+
+proc init=(other: chpl__protoSlice)
+
+ +
+
+proc domOrRange  where rank == 1
+
+ +
+
+proc domOrRange  where rank > 1
+
+ +
+
+proc dims()
+
+ +
+
+proc rank param
+
+ +
+
+proc eltType type
+
+ +
+
+proc _value
+
+ +
+
+proc sizeAs(type t)   where rank == 1
+
+ +
+
+proc sizeAs(type t)
+
+ +
+
+proc isRectangular() param
+
+ +
+
+iter these() ref  where !isConst
+
+ +
+
+iter these() const ref  where isConst
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis) ref  where tag == iterKind.follower && !isConst
+
+ +
+
+iter these(param tag: iterKind, followThis) const ref  where tag == iterKind.follower && isConst
+
+ +
+ +
+
+operator ==(const ref lhs: chpl__protoSlice(?), const ref rhs: chpl__protoSlice(?))
+
+ +
+
+operator :(ref a: chpl__protoSlice, type b: chpl__protoSlice)
+
+ +
+
+proc isProtoSlice(a) param
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelAutoAggregation.html b/docs/internal/modules/internal/ChapelAutoAggregation.html new file mode 100644 index 000000000..dfa78d7a2 --- /dev/null +++ b/docs/internal/modules/internal/ChapelAutoAggregation.html @@ -0,0 +1,252 @@ + + + + + + + ChapelAutoAggregation — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelAutoAggregation

+

Usage

+
use ChapelAutoAggregation;
+
+
+

or

+
import ChapelAutoAggregation;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+proc chpl_srcAggregatorFor(arr: [])
+
+ +
+
+proc chpl_srcAggregatorFor(dom)   where isDomain(dom)
+
+ +
+
+proc chpl_srcAggregatorFor(arr)
+
+ +
+
+proc chpl_dstAggregatorFor(arr: [])
+
+ +
+
+proc chpl_dstAggregatorFor(dom)   where isDomain(dom)
+
+ +
+
+proc chpl_dstAggregatorFor(arr)
+
+ +
+
+proc chpl__arrayIteratorYieldsLocalElements(x) param
+
+ +
+
+proc chpl__arrayIteratorYieldsLocalElements(type a) param
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelAutoLocalAccess.html b/docs/internal/modules/internal/ChapelAutoLocalAccess.html new file mode 100644 index 000000000..a7a7404f5 --- /dev/null +++ b/docs/internal/modules/internal/ChapelAutoLocalAccess.html @@ -0,0 +1,272 @@ + + + + + + + ChapelAutoLocalAccess — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelAutoLocalAccess

+

Usage

+
use ChapelAutoLocalAccess;
+
+
+

or

+
import ChapelAutoLocalAccess;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+proc chpl__staticAutoLocalCheck(accessBase: [], loopDomain: domain, param hasOffsets = false) param
+
+ +
+
+proc chpl__staticAutoLocalCheck(accessBase, loopDomain, param hasOffsets = false) param
+
+ +
+
+proc chpl__staticAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false) param
+
+ +
+
+proc chpl__staticAutoLocalCheck(accessBase, type loopDomain, param hasOffsets = false) param
+
+ +
+
+proc chpl__staticAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false) param
+
+ +
+
+proc chpl__dynamicAutoLocalCheck(accessBase, loopDomain, param hasOffsets = false)
+
+ +
+
+proc chpl__dynamicAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false)
+
+ +
+
+proc chpl__dynamicAutoLocalCheck(accessBase, type loopDomain, param hasOffsets = false)
+
+ +
+
+proc chpl__dynamicAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false)
+
+ +
+
+proc chpl__ala_offsetCheck(accessBase: [], offsets: integral ...)
+
+ +
+
+proc chpl__ala_offsetCheck(accessBase, offsets ...)
+
+ +
+
+proc chpl__isArrayViewWithDifferentDist(arr: []) param
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelBase.html b/docs/internal/modules/internal/ChapelBase.html new file mode 100644 index 000000000..2bda260fb --- /dev/null +++ b/docs/internal/modules/internal/ChapelBase.html @@ -0,0 +1,5271 @@ + + + + + + + ChapelBase — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelBase

+

Usage

+
use ChapelBase;
+
+
+

or

+
import ChapelBase;
+
+
+

Submodules

+
+ +
+
+
+type c_string = chpl_c_string
+
+

Warning

+

the type ‘c_string’ is deprecated; please ‘use CTypes’ and replace ‘c_string’ with ‘c_ptrConst(c_char)’

+
+
+ +
+
+type c_fn_ptr = chpl_c_fn_ptr
+
+

Warning

+

‘c_fn_ptr’ is unstable, and may be replaced by first-class procedure functionality

+
+
+ +
+
+operator c_fn_ptr.=(ref a: c_fn_ptr, b: c_fn_ptr)
+
+

Warning

+

= is unstable

+
+
+ +
+
+proc c_fn_ptr.this()
+
+

Warning

+

this is unstable

+
+
+ +
+
+proc c_fn_ptr.this(args ...)
+
+

Warning

+

this is unstable

+
+
+ +
+
+var rootLocaleInitialized : bool = false
+
+ +
+
+config param enablePostfixBangChecks = false
+
+ +
+
+proc chpl_config_has_value(name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : bool
+
+ +
+
+proc chpl_config_get_value(name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : c_ptrConst(c_char)
+
+ +
+
+config param defaultLowBound = 0
+
+ +
+
+config param chpl_stringMinAllocSize = 0
+
+ +
+
+config param warnMaximalRange = false
+
+ +
+
+var chpl_unstableInternalSymbolForTesting : int
+
+

Warning

+

chpl_unstableInternalSymbolForTesting is unstable

+
+
+ +
+
+config param assocParSafeDefault = false
+

Compile with -sassocParSafeDefault=true to use parSafe=true +by default for associative domains and arrays. +Compiling with an explicit -sassocParSafeDefault[=false] will +turn off the par safe warning, just like -snoParSafeWarning

+
+ +
+
+config param noParSafeWarning = false
+

Compile with -snoParSafeWarning to suppress the warning +about a missing explicit parSafe parameter and +about the default parSafe mode for associative domains +and arrays changing from true to false.

+
+ +
+
+class _object
+
+ +
+
+class object
+
+

Warning

+

the ‘object’ abstract root class has been deprecated; please use ‘RootClass’ instead

+
+
+ +
+
+enum iterKind { leader, follower, standalone }
+
+
+enum constant leader
+
+ +
+
+enum constant follower
+
+ +
+
+enum constant standalone
+
+ +
+ +
+
+config param fcfsUsePointerImplementation = false
+
+ +
+
+operator =(ref a: bool, b: bool)
+
+ +
+
+operator =(ref a: int(8), b: int(8))
+
+ +
+
+operator =(ref a: int(16), b: int(16))
+
+ +
+
+operator =(ref a: int(32), b: int(32))
+
+ +
+
+operator =(ref a: int(64), b: int(64))
+
+ +
+
+operator =(ref a: uint(8), b: uint(8))
+
+ +
+
+operator =(ref a: uint(16), b: uint(16))
+
+ +
+
+operator =(ref a: uint(32), b: uint(32))
+
+ +
+
+operator =(ref a: uint(64), b: uint(64))
+
+ +
+
+operator =(ref a: real(32), b: real(32))
+
+ +
+
+operator =(ref a: real(64), b: real(64))
+
+ +
+
+operator =(ref a: imag(32), b: imag(32))
+
+ +
+
+operator =(ref a: imag(64), b: imag(64))
+
+ +
+
+operator =(ref a: complex(64), b: complex(64))
+
+ +
+
+operator =(ref a: complex(128), b: complex(128))
+
+ +
+
+operator =(ref a: opaque, b: opaque)
+
+ +
+
+operator =(ref a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator =(ref a: borrowed(class), b: a.type)   where isSubtype(b.type, a.type)
+
+ +
+
+operator =(ref a: borrowed(class?), b: a.type)   where isSubtype(b.type, a.type)
+
+ +
+
+operator =(ref a: unmanaged(class), b: a.type)   where isSubtype(b.type, a.type)
+
+ +
+
+operator =(ref a: unmanaged(class?), b: a.type)   where isSubtype(b.type, a.type)
+
+ +
+
+operator =(ref a: nothing, b: ?t)   where t != nothing
+
+ +
+
+operator =(ref a: ?t, b: nothing)   where t != nothing
+
+ +
+
+operator =(ref a: nothing, b: nothing) param
+
+ +
+
+operator ==(a: _nilType, b: _nilType) param
+
+ +
+
+operator ==(a: bool, b: bool)
+
+ +
+
+operator ==(a: int(8), b: int(8))
+
+ +
+
+operator ==(a: int(16), b: int(16))
+
+ +
+
+operator ==(a: int(32), b: int(32))
+
+ +
+
+operator ==(a: int(64), b: int(64))
+
+ +
+
+operator ==(a: uint(8), b: uint(8))
+
+ +
+
+operator ==(a: uint(16), b: uint(16))
+
+ +
+
+operator ==(a: uint(32), b: uint(32))
+
+ +
+
+operator ==(a: uint(64), b: uint(64))
+
+ +
+
+operator ==(a: real(32), b: real(32))
+
+ +
+
+operator ==(a: real(64), b: real(64))
+
+ +
+
+operator ==(a: imag(32), b: imag(32))
+
+ +
+
+operator ==(a: imag(64), b: imag(64))
+
+ +
+
+operator ==(a: complex(64), b: complex(64))
+
+ +
+
+operator ==(a: complex(128), b: complex(128))
+
+ +
+
+operator ==(a: borrowed(RootClass?), b: borrowed(RootClass?))
+
+ +
+
+operator ==(a: borrowed(RootClass?), b: _nilType)
+
+ +
+
+operator ==(a: _nilType, b: borrowed(RootClass?))
+
+ +
+
+operator ==(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator ==(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator !=(a: _nilType, b: _nilType) param
+
+ +
+
+operator !=(a: bool, b: bool)
+
+ +
+
+operator !=(a: int(8), b: int(8))
+
+ +
+
+operator !=(a: int(16), b: int(16))
+
+ +
+
+operator !=(a: int(32), b: int(32))
+
+ +
+
+operator !=(a: int(64), b: int(64))
+
+ +
+
+operator !=(a: uint(8), b: uint(8))
+
+ +
+
+operator !=(a: uint(16), b: uint(16))
+
+ +
+
+operator !=(a: uint(32), b: uint(32))
+
+ +
+
+operator !=(a: uint(64), b: uint(64))
+
+ +
+
+operator !=(a: real(32), b: real(32))
+
+ +
+
+operator !=(a: real(64), b: real(64))
+
+ +
+
+operator !=(a: imag(32), b: imag(32))
+
+ +
+
+operator !=(a: imag(64), b: imag(64))
+
+ +
+
+operator !=(a: complex(64), b: complex(64))
+
+ +
+
+operator !=(a: complex(128), b: complex(128))
+
+ +
+
+operator !=(a: borrowed(RootClass?), b: borrowed(RootClass?))
+
+ +
+
+operator !=(a: borrowed(RootClass?), b: _nilType)
+
+ +
+
+operator !=(a: _nilType, b: borrowed(RootClass?))
+
+ +
+
+operator !=(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator !=(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator ==(param a: bool, param b: bool) param
+
+ +
+
+operator ==(param a: int(8), param b: int(8)) param
+
+ +
+
+operator ==(param a: int(16), param b: int(16)) param
+
+ +
+
+operator ==(param a: int(32), param b: int(32)) param
+
+ +
+
+operator ==(param a: int(64), param b: int(64)) param
+
+ +
+
+operator ==(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator ==(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator ==(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator ==(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator ==(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator ==(param a: real(32), param b: real(32)) param
+
+ +
+
+operator ==(param a: real(64), param b: real(64)) param
+
+ +
+
+operator ==(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator ==(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator ==(param a: complex(64), param b: complex(64)) param
+
+ +
+
+operator ==(param a: complex(128), param b: complex(128)) param
+
+ +
+
+operator ==(a: nothing, b: nothing) param
+
+ +
+
+operator !=(param a: bool, param b: bool) param
+
+ +
+
+operator !=(param a: int(8), param b: int(8)) param
+
+ +
+
+operator !=(param a: int(16), param b: int(16)) param
+
+ +
+
+operator !=(param a: int(32), param b: int(32)) param
+
+ +
+
+operator !=(param a: int(64), param b: int(64)) param
+
+ +
+
+operator !=(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator !=(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator !=(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator !=(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator !=(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator !=(param a: real(32), param b: real(32)) param
+
+ +
+
+operator !=(param a: real(64), param b: real(64)) param
+
+ +
+
+operator !=(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator !=(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator !=(param a: complex(64), param b: complex(64)) param
+
+ +
+
+operator !=(param a: complex(128), param b: complex(128)) param
+
+ +
+
+operator !=(a: nothing, b: nothing) param
+
+ +
+
+operator <=(a: int(8), b: int(8))
+
+ +
+
+operator <=(a: int(16), b: int(16))
+
+ +
+
+operator <=(a: int(32), b: int(32))
+
+ +
+
+operator <=(a: int(64), b: int(64))
+
+ +
+
+operator <=(a: uint(8), b: uint(8))
+
+ +
+
+operator <=(a: uint(16), b: uint(16))
+
+ +
+
+operator <=(a: uint(32), b: uint(32))
+
+ +
+
+operator <=(a: uint(64), b: uint(64))
+
+ +
+
+operator <=(a: real(32), b: real(32))
+
+ +
+
+operator <=(a: real(64), b: real(64))
+
+ +
+
+operator <=(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator <=(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator >=(a: int(8), b: int(8))
+
+ +
+
+operator >=(a: int(16), b: int(16))
+
+ +
+
+operator >=(a: int(32), b: int(32))
+
+ +
+
+operator >=(a: int(64), b: int(64))
+
+ +
+
+operator >=(a: uint(8), b: uint(8))
+
+ +
+
+operator >=(a: uint(16), b: uint(16))
+
+ +
+
+operator >=(a: uint(32), b: uint(32))
+
+ +
+
+operator >=(a: uint(64), b: uint(64))
+
+ +
+
+operator >=(a: real(32), b: real(32))
+
+ +
+
+operator >=(a: real(64), b: real(64))
+
+ +
+
+operator >=(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator >=(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator <(a: integral, b: integral)
+
+ +
+
+operator <(a: integral, param b: integral) param  where isUint(a) && __primitive("<=", b, 0)
+
+ +
+
+operator <(param a: integral, b: integral) param  where isUint(b) && __primitive("<", a, 0)
+
+ +
+
+operator <(param a: integral, param b: integral) param
+
+ +
+
+operator <(a: bool, b: bool)
+
+ +
+
+operator <(a: bool, b: integral)
+
+ +
+
+operator <(a: integral, b: bool)
+
+ +
+
+operator <(param a: bool, param b: bool) param
+
+ +
+
+operator <(a: real(32), b: real(32))
+
+ +
+
+operator <(a: real(64), b: real(64))
+
+ +
+
+operator <(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator <(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator >(a: int(8), b: int(8))
+
+ +
+
+operator >(a: int(16), b: int(16))
+
+ +
+
+operator >(a: int(32), b: int(32))
+
+ +
+
+operator >(a: int(64), b: int(64))
+
+ +
+
+operator >(a: uint(8), b: uint(8))
+
+ +
+
+operator >(a: uint(16), b: uint(16))
+
+ +
+
+operator >(a: uint(32), b: uint(32))
+
+ +
+
+operator >(a: uint(64), b: uint(64))
+
+ +
+
+operator >(a: real(32), b: real(32))
+
+ +
+
+operator >(a: real(64), b: real(64))
+
+ +
+
+operator >(a: enum, b: enum)   where a.type == b.type
+
+ +
+
+operator >(a: enum, b: enum)   where a.type != b.type
+
+ +
+
+operator <=(param a: int(8), param b: int(8)) param
+
+ +
+
+operator <=(param a: int(16), param b: int(16)) param
+
+ +
+
+operator <=(param a: int(32), param b: int(32)) param
+
+ +
+
+operator <=(param a: int(64), param b: int(64)) param
+
+ +
+
+operator <=(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator <=(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator <=(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator <=(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator <=(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator <=(param a: real(32), param b: real(32)) param
+
+ +
+
+operator <=(param a: real(64), param b: real(64)) param
+
+ +
+
+operator >=(param a: int(8), param b: int(8)) param
+
+ +
+
+operator >=(param a: int(16), param b: int(16)) param
+
+ +
+
+operator >=(param a: int(32), param b: int(32)) param
+
+ +
+
+operator >=(param a: int(64), param b: int(64)) param
+
+ +
+
+operator >=(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator >=(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator >=(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator >=(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator >=(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator >=(param a: real(32), param b: real(32)) param
+
+ +
+
+operator >=(param a: real(64), param b: real(64)) param
+
+ +
+
+operator <(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator <(param a: real(32), param b: real(32)) param
+
+ +
+
+operator <(param a: real(64), param b: real(64)) param
+
+ +
+
+operator >(param a: int(8), param b: int(8)) param
+
+ +
+
+operator >(param a: int(16), param b: int(16)) param
+
+ +
+
+operator >(param a: int(32), param b: int(32)) param
+
+ +
+
+operator >(param a: int(64), param b: int(64)) param
+
+ +
+
+operator >(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator >(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator >(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator >(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator >(param a: enum, param b: enum) param  where a.type == b.type
+
+ +
+
+operator >(param a: real(32), param b: real(32)) param
+
+ +
+
+operator >(param a: real(64), param b: real(64)) param
+
+ +
+
+operator +(a: int(?w))
+
+ +
+
+operator +(a: uint(?w))
+
+ +
+
+operator +(a: real(?w))
+
+ +
+
+operator +(a: imag(?w))
+
+ +
+
+operator +(a: complex(?w))
+
+ +
+
+operator -(a: int(?w))
+
+ +
+
+operator -(a: uint(?w))
+
+ +
+
+operator -(a: real(?w))
+
+ +
+
+operator -(a: imag(?w))
+
+ +
+
+operator -(a: complex(?w))
+
+ +
+
+operator +(param a: int(?w)) param
+
+ +
+
+operator +(param a: uint(?w)) param
+
+ +
+
+operator +(param a: real(?w)) param
+
+ +
+
+operator +(param a: imag(?w)) param
+
+ +
+
+operator +(param a: complex(?w)) param
+
+ +
+
+operator -(param a: int(?w)) param
+
+ +
+
+operator -(param a: uint(?w)) param
+
+ +
+
+operator -(param a: real(?w)) param
+
+ +
+
+operator -(param a: imag(?w)) param
+
+ +
+
+operator -(param a: complex(?w)) param
+
+ +
+
+operator +(a: int(8), b: int(8))
+
+ +
+
+operator +(a: int(16), b: int(16))
+
+ +
+
+operator +(a: int(32), b: int(32))
+
+ +
+
+operator +(a: int(64), b: int(64))
+
+ +
+
+operator +(a: uint(8), b: uint(8))
+
+ +
+
+operator +(a: uint(16), b: uint(16))
+
+ +
+
+operator +(a: uint(32), b: uint(32))
+
+ +
+
+operator +(a: uint(64), b: uint(64))
+
+ +
+
+operator +(a: real(32), b: real(32))
+
+ +
+
+operator +(a: real(64), b: real(64))
+
+ +
+
+operator +(a: imag(32), b: imag(32))
+
+ +
+
+operator +(a: imag(64), b: imag(64))
+
+ +
+
+operator +(a: complex(64), b: complex(64))
+
+ +
+
+operator +(a: complex(128), b: complex(128))
+
+ +
+
+operator +(a: real(32), b: imag(32))
+
+ +
+
+operator +(a: real(64), b: imag(64))
+
+ +
+
+operator +(a: imag(32), b: real(32))
+
+ +
+
+operator +(a: imag(64), b: real(64))
+
+ +
+
+operator +(a: real(32), b: complex(64))
+
+ +
+
+operator +(a: real(64), b: complex(128))
+
+ +
+
+operator +(a: complex(64), b: real(32))
+
+ +
+
+operator +(a: complex(128), b: real(64))
+
+ +
+
+operator +(a: imag(32), b: complex(64))
+
+ +
+
+operator +(a: imag(64), b: complex(128))
+
+ +
+
+operator +(a: complex(64), b: imag(32))
+
+ +
+
+operator +(a: complex(128), b: imag(64))
+
+ +
+
+operator -(a: int(8), b: int(8))
+
+ +
+
+operator -(a: int(16), b: int(16))
+
+ +
+
+operator -(a: int(32), b: int(32))
+
+ +
+
+operator -(a: int(64), b: int(64))
+
+ +
+
+operator -(a: uint(8), b: uint(8))
+
+ +
+
+operator -(a: uint(16), b: uint(16))
+
+ +
+
+operator -(a: uint(32), b: uint(32))
+
+ +
+
+operator -(a: uint(64), b: uint(64))
+
+ +
+
+operator -(a: real(32), b: real(32))
+
+ +
+
+operator -(a: real(64), b: real(64))
+
+ +
+
+operator -(a: imag(32), b: imag(32))
+
+ +
+
+operator -(a: imag(64), b: imag(64))
+
+ +
+
+operator -(a: complex(64), b: complex(64))
+
+ +
+
+operator -(a: complex(128), b: complex(128))
+
+ +
+
+operator -(a: real(32), b: imag(32))
+
+ +
+
+operator -(a: real(64), b: imag(64))
+
+ +
+
+operator -(a: imag(32), b: real(32))
+
+ +
+
+operator -(a: imag(64), b: real(64))
+
+ +
+
+operator -(a: real(32), b: complex(64))
+
+ +
+
+operator -(a: real(64), b: complex(128))
+
+ +
+
+operator -(a: complex(64), b: real(32))
+
+ +
+
+operator -(a: complex(128), b: real(64))
+
+ +
+
+operator -(a: imag(32), b: complex(64))
+
+ +
+
+operator -(a: imag(64), b: complex(128))
+
+ +
+
+operator -(a: complex(64), b: imag(32))
+
+ +
+
+operator -(a: complex(128), b: imag(64))
+
+ +
+
+operator +(param a: int(8), param b: int(8)) param
+
+ +
+
+operator +(param a: int(16), param b: int(16)) param
+
+ +
+
+operator +(param a: int(32), param b: int(32)) param
+
+ +
+
+operator +(param a: int(64), param b: int(64)) param
+
+ +
+
+operator +(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator +(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator +(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator +(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator +(param a: real(32), param b: real(32)) param
+
+ +
+
+operator +(param a: real(64), param b: real(64)) param
+
+ +
+
+operator +(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator +(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator +(param a: complex(64), param b: complex(64)) param
+
+ +
+
+operator +(param a: complex(128), param b: complex(128)) param
+
+ +
+
+operator +(param a: real(32), param b: imag(32)) param
+
+ +
+
+operator +(param a: real(64), param b: imag(64)) param
+
+ +
+
+operator +(param a: imag(32), param b: real(32)) param
+
+ +
+
+operator +(param a: imag(64), param b: real(64)) param
+
+ +
+
+operator -(param a: int(8), param b: int(8)) param
+

inline operator +(param a: real(?w), param b: complex(w*2)) param do return +__primitive(“+”, a, b);

+
+ +
+
+operator -(param a: int(16), param b: int(16)) param
+
+ +
+
+operator -(param a: int(32), param b: int(32)) param
+
+ +
+
+operator -(param a: int(64), param b: int(64)) param
+
+ +
+
+operator -(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator -(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator -(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator -(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator -(param a: real(32), param b: real(32)) param
+
+ +
+
+operator -(param a: real(64), param b: real(64)) param
+
+ +
+
+operator -(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator -(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator -(param a: complex(64), param b: complex(64)) param
+
+ +
+
+operator -(param a: complex(128), param b: complex(128)) param
+
+ +
+
+operator -(param a: real(32), param b: imag(32)) param
+
+ +
+
+operator -(param a: real(64), param b: imag(64)) param
+
+ +
+
+operator -(param a: imag(32), param b: real(32)) param
+
+ +
+
+operator -(param a: imag(64), param b: real(64)) param
+
+ +
+
+operator *(a: int(8), b: int(8))
+
+ +
+
+operator *(a: int(16), b: int(16))
+
+ +
+
+operator *(a: int(32), b: int(32))
+
+ +
+
+operator *(a: int(64), b: int(64))
+
+ +
+
+operator *(a: uint(8), b: uint(8))
+
+ +
+
+operator *(a: uint(16), b: uint(16))
+
+ +
+
+operator *(a: uint(32), b: uint(32))
+
+ +
+
+operator *(a: uint(64), b: uint(64))
+
+ +
+
+operator *(a: real(32), b: real(32))
+
+ +
+
+operator *(a: real(64), b: real(64))
+
+ +
+
+operator *(a: imag(32), b: imag(32))
+
+ +
+
+operator *(a: imag(64), b: imag(64))
+
+ +
+
+operator *(a: complex(64), b: complex(64))
+
+ +
+
+operator *(a: complex(128), b: complex(128))
+
+ +
+
+operator *(a: real(32), b: imag(32))
+
+ +
+
+operator *(a: real(64), b: imag(64))
+
+ +
+
+operator *(a: imag(32), b: real(32))
+
+ +
+
+operator *(a: imag(64), b: real(64))
+
+ +
+
+operator *(a: real(32), b: complex(64))
+
+ +
+
+operator *(a: real(64), b: complex(128))
+
+ +
+
+operator *(a: complex(64), b: real(32))
+
+ +
+
+operator *(a: complex(128), b: real(64))
+
+ +
+
+operator *(a: imag(32), b: complex(64))
+
+ +
+
+operator *(a: imag(64), b: complex(128))
+
+ +
+
+operator *(a: complex(64), b: imag(32))
+
+ +
+
+operator *(a: complex(128), b: imag(64))
+
+ +
+
+operator /(a: int(8), b: int(8))
+
+ +
+
+operator /(a: int(16), b: int(16))
+
+ +
+
+operator /(a: int(32), b: int(32))
+
+ +
+
+operator /(a: int(64), b: int(64))
+
+ +
+
+operator /(a: uint(8), b: uint(8))
+
+ +
+
+operator /(a: uint(16), b: uint(16))
+
+ +
+
+operator /(a: uint(32), b: uint(32))
+
+ +
+
+operator /(a: uint(64), b: uint(64))
+
+ +
+
+operator /(a: real(32), b: real(32))
+
+ +
+
+operator /(a: real(64), b: real(64))
+
+ +
+
+operator /(a: imag(32), b: imag(32))
+
+ +
+
+operator /(a: imag(64), b: imag(64))
+
+ +
+
+operator /(a: complex(64), b: complex(64))
+
+ +
+
+operator /(a: complex(128), b: complex(128))
+
+ +
+
+operator /(a: real(32), b: imag(32))
+
+ +
+
+operator /(a: real(64), b: imag(64))
+
+ +
+
+operator /(a: imag(32), b: real(32))
+
+ +
+
+operator /(a: imag(64), b: real(64))
+
+ +
+
+operator /(a: real(32), b: complex(64))
+
+ +
+
+operator /(a: real(64), b: complex(128))
+
+ +
+
+operator /(a: complex(64), b: real(32))
+
+ +
+
+operator /(a: complex(128), b: real(64))
+
+ +
+
+operator /(a: imag(32), b: complex(64))
+
+ +
+
+operator /(a: imag(64), b: complex(128))
+
+ +
+
+operator /(a: complex(64), b: imag(32))
+
+ +
+
+operator /(a: complex(128), b: imag(64))
+
+ +
+
+operator *(param a: int(8), param b: int(8)) param
+
+ +
+
+operator *(param a: int(16), param b: int(16)) param
+
+ +
+
+operator *(param a: int(32), param b: int(32)) param
+
+ +
+
+operator *(param a: int(64), param b: int(64)) param
+
+ +
+
+operator *(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator *(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator *(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator *(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator *(param a: real(32), param b: real(32)) param
+
+ +
+
+operator *(param a: real(64), param b: real(64)) param
+
+ +
+
+operator *(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator *(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator *(param a: real(32), param b: imag(32)) param
+
+ +
+
+operator *(param a: real(64), param b: imag(64)) param
+
+ +
+
+operator *(param a: imag(32), param b: real(32)) param
+
+ +
+
+operator *(param a: imag(64), param b: real(64)) param
+
+ +
+
+operator /(param a: int(8), param b: int(8)) param
+
+ +
+
+operator /(param a: int(16), param b: int(16)) param
+
+ +
+
+operator /(param a: int(32), param b: int(32)) param
+
+ +
+
+operator /(param a: int(64), param b: int(64)) param
+
+ +
+
+operator /(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator /(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator /(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator /(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator /(param a: real(32), param b: real(32)) param
+
+ +
+
+operator /(param a: real(64), param b: real(64)) param
+
+ +
+
+operator /(param a: imag(32), param b: imag(32)) param
+
+ +
+
+operator /(param a: imag(64), param b: imag(64)) param
+
+ +
+
+operator /(param a: real(32), param b: imag(32)) param
+
+ +
+
+operator /(param a: real(64), param b: imag(64)) param
+
+ +
+
+operator /(param a: imag(32), param b: real(32)) param
+
+ +
+
+operator /(param a: imag(64), param b: real(64)) param
+
+ +
+
+operator %(a: int(8), b: int(8))
+
+ +
+
+operator %(a: int(16), b: int(16))
+
+ +
+
+operator %(a: int(32), b: int(32))
+
+ +
+
+operator %(a: int(64), b: int(64))
+
+ +
+
+operator %(a: uint(8), b: uint(8))
+
+ +
+
+operator %(a: uint(16), b: uint(16))
+
+ +
+
+operator %(a: uint(32), b: uint(32))
+
+ +
+
+operator %(a: uint(64), b: uint(64))
+
+ +
+
+operator %(param a: int(8), param b: int(8)) param
+
+ +
+
+operator %(param a: int(16), param b: int(16)) param
+
+ +
+
+operator %(param a: int(32), param b: int(32)) param
+
+ +
+
+operator %(param a: int(64), param b: int(64)) param
+
+ +
+
+operator %(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator %(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator %(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator %(param a: uint(64), param b: uint(64)) param
+
+ +
+
+proc _intExpHelp(a: integral, b)   where a.type == b.type
+
+ +
+
+operator **(a: int(8), b: int(8))
+
+ +
+
+operator **(a: int(16), b: int(16))
+
+ +
+
+operator **(a: int(32), b: int(32))
+
+ +
+
+operator **(a: int(64), b: int(64))
+
+ +
+
+operator **(a: uint(8), b: uint(8))
+
+ +
+
+operator **(a: uint(16), b: uint(16))
+
+ +
+
+operator **(a: uint(32), b: uint(32))
+
+ +
+
+operator **(a: uint(64), b: uint(64))
+
+ +
+
+operator **(a: real(32), b: real(32))
+
+ +
+
+operator **(a: real(64), b: real(64))
+
+ +
+
+operator **(a: complex(64), b: complex(64))
+
+ +
+
+operator **(a: complex(128), b: complex(128))
+
+ +
+
+operator **(param a: int(8), param b: int(8)) param
+
+ +
+
+operator **(param a: int(16), param b: int(16)) param
+
+ +
+
+operator **(param a: int(32), param b: int(32)) param
+
+ +
+
+operator **(param a: int(64), param b: int(64)) param
+
+ +
+
+operator **(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator **(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator **(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator **(param a: uint(64), param b: uint(64)) param
+
+ +
+
+proc _expHelp(a, param b: integral)
+
+ +
+
+proc _expBaseHelp(param a: int, b)   where _basePowerTwo(a)
+
+ +
+
+proc _canOptimizeExp(param b: integral) param
+
+ +
+
+proc _basePowerTwo(param a: integral) param
+
+ +
+
+operator **(a: int(?w), param b: integral)   where _canOptimizeExp(b)
+
+ +
+
+operator **(a: uint(?w), param b: integral)   where _canOptimizeExp(b)
+
+ +
+
+operator **(a: real(?w), param b: integral)   where _canOptimizeExp(b)
+
+ +
+
+operator **(param a: integral, b: int)   where _basePowerTwo(a)
+
+ +
+
+operator !(a: bool)
+
+ +
+
+operator !(a: int(?w))
+
+ +
+
+operator !(a: uint(?w))
+
+ +
+
+proc isTrue(a: bool)
+
+ +
+
+proc isTrue(param a: bool) param
+
+ +
+
+proc isTrue(a: integral)
+
+ +
+
+operator !(param a: bool) param
+
+ +
+
+operator !(param a: int(?w)) param
+
+ +
+
+operator !(param a: uint(?w)) param
+
+ +
+
+operator ~(a: int(?w))
+
+ +
+
+operator ~(a: uint(?w))
+
+ +
+
+operator ~(a: bool)
+
+ +
+
+operator &(a: bool, b: bool)
+
+ +
+
+operator &(a: int(8), b: int(8))
+
+ +
+
+operator &(a: int(16), b: int(16))
+
+ +
+
+operator &(a: int(32), b: int(32))
+
+ +
+
+operator &(a: int(64), b: int(64))
+
+ +
+
+operator &(a: uint(8), b: uint(8))
+
+ +
+
+operator &(a: uint(16), b: uint(16))
+
+ +
+
+operator &(a: uint(32), b: uint(32))
+
+ +
+
+operator &(a: uint(64), b: uint(64))
+
+ +
+
+operator &(a: uint(8), b: int(8))
+
+ +
+
+operator &(a: uint(16), b: int(16))
+
+ +
+
+operator &(a: uint(32), b: int(32))
+
+ +
+
+operator &(a: uint(64), b: int(64))
+
+ +
+
+operator &(a: int(8), b: uint(8))
+
+ +
+
+operator &(a: int(16), b: uint(16))
+
+ +
+
+operator &(a: int(32), b: uint(32))
+
+ +
+
+operator &(a: int(64), b: uint(64))
+
+ +
+
+operator |(a: bool, b: bool)
+
+ +
+
+operator |(a: int(8), b: int(8))
+
+ +
+
+operator |(a: int(16), b: int(16))
+
+ +
+
+operator |(a: int(32), b: int(32))
+
+ +
+
+operator |(a: int(64), b: int(64))
+
+ +
+
+operator |(a: uint(8), b: uint(8))
+
+ +
+
+operator |(a: uint(16), b: uint(16))
+
+ +
+
+operator |(a: uint(32), b: uint(32))
+
+ +
+
+operator |(a: uint(64), b: uint(64))
+
+ +
+
+operator |(a: uint(8), b: int(8))
+
+ +
+
+operator |(a: uint(16), b: int(16))
+
+ +
+
+operator |(a: uint(32), b: int(32))
+
+ +
+
+operator |(a: uint(64), b: int(64))
+
+ +
+
+operator |(a: int(8), b: uint(8))
+
+ +
+
+operator |(a: int(16), b: uint(16))
+
+ +
+
+operator |(a: int(32), b: uint(32))
+
+ +
+
+operator |(a: int(64), b: uint(64))
+
+ +
+
+operator ^(a: bool, b: bool)
+
+ +
+
+operator ^(a: int(8), b: int(8))
+
+ +
+
+operator ^(a: int(16), b: int(16))
+
+ +
+
+operator ^(a: int(32), b: int(32))
+
+ +
+
+operator ^(a: int(64), b: int(64))
+
+ +
+
+operator ^(a: uint(8), b: uint(8))
+
+ +
+
+operator ^(a: uint(16), b: uint(16))
+
+ +
+
+operator ^(a: uint(32), b: uint(32))
+
+ +
+
+operator ^(a: uint(64), b: uint(64))
+
+ +
+
+operator ^(a: uint(8), b: int(8))
+
+ +
+
+operator ^(a: uint(16), b: int(16))
+
+ +
+
+operator ^(a: uint(32), b: int(32))
+
+ +
+
+operator ^(a: uint(64), b: int(64))
+
+ +
+
+operator ^(a: int(8), b: uint(8))
+
+ +
+
+operator ^(a: int(16), b: uint(16))
+
+ +
+
+operator ^(a: int(32), b: uint(32))
+
+ +
+
+operator ^(a: int(64), b: uint(64))
+
+ +
+
+operator ~(param a: bool)
+
+ +
+
+operator ~(param a: int(?w)) param
+
+ +
+
+operator ~(param a: uint(?w)) param
+
+ +
+
+operator &(param a: bool, param b: bool) param
+
+ +
+
+operator &(param a: int(8), param b: int(8)) param
+
+ +
+
+operator &(param a: int(16), param b: int(16)) param
+
+ +
+
+operator &(param a: int(32), param b: int(32)) param
+
+ +
+
+operator &(param a: int(64), param b: int(64)) param
+
+ +
+
+operator &(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator &(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator &(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator &(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator &(param a: uint(8), param b: int(8)) param
+
+ +
+
+operator &(param a: uint(16), param b: int(16)) param
+
+ +
+
+operator &(param a: uint(32), param b: int(32)) param
+
+ +
+
+operator &(param a: uint(64), param b: int(64)) param
+
+ +
+
+operator &(param a: int(8), param b: uint(8)) param
+
+ +
+
+operator &(param a: int(16), param b: uint(16)) param
+
+ +
+
+operator &(param a: int(32), param b: uint(32)) param
+
+ +
+
+operator &(param a: int(64), param b: uint(64)) param
+
+ +
+
+operator |(param a: bool, param b: bool) param
+
+ +
+
+operator |(param a: int(8), param b: int(8)) param
+
+ +
+
+operator |(param a: int(16), param b: int(16)) param
+
+ +
+
+operator |(param a: int(32), param b: int(32)) param
+
+ +
+
+operator |(param a: int(64), param b: int(64)) param
+
+ +
+
+operator |(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator |(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator |(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator |(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator |(param a: uint(8), param b: int(8)) param
+
+ +
+
+operator |(param a: uint(16), param b: int(16)) param
+
+ +
+
+operator |(param a: uint(32), param b: int(32)) param
+
+ +
+
+operator |(param a: uint(64), param b: int(64)) param
+
+ +
+
+operator |(param a: int(8), param b: uint(8)) param
+
+ +
+
+operator |(param a: int(16), param b: uint(16)) param
+
+ +
+
+operator |(param a: int(32), param b: uint(32)) param
+
+ +
+
+operator |(param a: int(64), param b: uint(64)) param
+
+ +
+
+operator ^(param a: bool, param b: bool) param
+
+ +
+
+operator ^(param a: int(8), param b: int(8)) param
+
+ +
+
+operator ^(param a: int(16), param b: int(16)) param
+
+ +
+
+operator ^(param a: int(32), param b: int(32)) param
+
+ +
+
+operator ^(param a: int(64), param b: int(64)) param
+
+ +
+
+operator ^(param a: uint(8), param b: uint(8)) param
+
+ +
+
+operator ^(param a: uint(16), param b: uint(16)) param
+
+ +
+
+operator ^(param a: uint(32), param b: uint(32)) param
+
+ +
+
+operator ^(param a: uint(64), param b: uint(64)) param
+
+ +
+
+operator ^(param a: uint(8), param b: int(8)) param
+
+ +
+
+operator ^(param a: uint(16), param b: int(16)) param
+
+ +
+
+operator ^(param a: uint(32), param b: int(32)) param
+
+ +
+
+operator ^(param a: uint(64), param b: int(64)) param
+
+ +
+
+operator ^(param a: int(8), param b: uint(8)) param
+
+ +
+
+operator ^(param a: int(16), param b: uint(16)) param
+
+ +
+
+operator ^(param a: int(32), param b: uint(32)) param
+
+ +
+
+operator ^(param a: int(64), param b: uint(64)) param
+
+ +
+
+proc bitshiftChecks(a, b: integral)
+
+ +
+
+proc bitshiftChecks(param a, param b: integral)
+
+ +
+
+operator <<(a: int(?w), b: integral)
+
+ +
+
+operator <<(a: uint(?w), b: integral)
+
+ +
+
+operator >>(a: int(?w), b: integral)
+
+ +
+
+operator >>(a: uint(?w), b: integral)
+
+ +
+
+operator <<(param a: int(?w), param b: integral) param
+
+ +
+
+operator <<(param a: uint(?w), param b: integral) param
+
+ +
+
+operator >>(param a: int(?w), param b: integral) param
+
+ +
+
+operator >>(param a: uint(?w), param b: integral) param
+
+ +
+
+proc postfix!( x: unmanaged(class))
+
+ +
+
+proc postfix!( x: borrowed(class))
+
+ +
+
+proc postfix!( x: unmanaged(class?))
+
+ +
+
+proc postfix!( x: borrowed(class?))
+
+ +
+
+proc postfix!( x)
+
+ +
+
+proc chpl_statementLevelSymbol(a)
+
+ +
+
+proc chpl_statementLevelSymbol(a: sync)
+
+ +
+
+proc chpl_statementLevelSymbol(a: single)
+
+ +
+
+proc chpl_statementLevelSymbol(ir: _iteratorRecord)
+
+ +
+
+proc _cond_test(param x: ?t) param : bool
+
+ +
+
+proc _cond_test(x: ?t) : bool
+
+ +
+
+proc _cond_invalid(x: borrowed(RootClass?)) param
+
+ +
+
+proc _cond_invalid(x: bool) param
+
+ +
+
+proc _cond_invalid(x: int) param
+
+ +
+
+proc _cond_invalid(x: uint) param
+
+ +
+
+proc _cond_invalid(x) param
+
+ +
+
+proc isNonnegative(i: int(?))
+
+ +
+
+proc isNonnegative(i: uint(?)) param
+
+ +
+
+proc isNonnegative(param i) param
+
+ +
+
+proc ref chpl_anycomplex.re ref
+
+ +
+
+proc param chpl_anycomplex.re param
+
+ +
+
+proc chpl_anycomplex.re
+
+ +
+
+proc ref chpl_anycomplex.im ref
+
+ +
+
+proc param chpl_anycomplex.im param
+
+ +
+
+proc chpl_anycomplex.im
+
+ +
+
+proc _i2r(a: imag(?w))
+
+ +
+
+proc _r2i(a: real(?w))
+
+ +
+
+enum ArrayInit { heuristicInit, noInit, serialInit, parallelInit, gpuInit }
+
+
+enum constant heuristicInit
+
+ +
+
+enum constant noInit
+
+ +
+
+enum constant serialInit
+
+ +
+
+enum constant parallelInit
+
+ +
+
+enum constant gpuInit
+
+ +
+ +
+
+config param chpl_defaultArrayInitMethod = ArrayInit.heuristicInit
+
+ +
+
+config param chpl_defaultGpuArrayInitMethod = if CHPL_GPU_MEM_STRATEGY == "array_on_device" then ArrayInit.gpuInit else chpl_defaultArrayInitMethod
+
+ +
+
+config param chpl_arrayInitMethodRuntimeSelectable = false
+
+ +
+
+proc chpl_setArrayInitMethod(initMethod: ArrayInit)
+
+ +
+
+proc chpl_getArrayInitMethod()
+
+ +
+
+proc chpl_shouldDoGpuInit() : bool
+
+ +
+
+proc init_elts_method(s, type t)
+
+ +
+
+proc init_elts(x, s, type t, lo = 0: s.type) : void
+
+ +
+
+type chpl_mem_descInt_t = int(16)
+
+ +
+
+enum chpl_ddataResizePolicy { normalInit, skipInit, skipInitButClearMem }
+
+
+enum constant normalInit
+
+ +
+
+enum constant skipInit
+
+ +
+
+enum constant skipInitButClearMem
+
+ +
+ +
+
+class _ddata
+
+
+type eltType
+
+ +
+
+proc this(i: integral) ref
+
+ +
+ +
+
+proc chpl_isDdata(type t: _ddata) param
+
+ +
+
+proc chpl_isDdata(type t) param
+
+ +
+
+operator =(ref a: _ddata(?t), b: _ddata(t))
+
+ +
+
+proc _ddata_shift(type eltType, data: _ddata(eltType), shift: integral)
+
+ +
+
+proc _ddata_sizeof_element(type t: _ddata) : c_size_t
+
+ +
+
+proc _ddata_sizeof_element(x: _ddata) : c_size_t
+
+ +
+
+proc _ddata_allocate_noinit(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none, haltOnOom: bool = true)
+
+ +
+
+proc _try_ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none) throws
+
+ +
+
+proc _ddata_allocate_noinit_gpu_shared(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none)
+
+ +
+
+proc _ddata_allocate_postalloc(data: _ddata, size: integral)
+
+ +
+
+proc _ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none)
+
+ +
+
+proc _ddata_supports_reallocate(oldDdata, type eltType, oldSize: integral, newSize: integral)
+
+ +
+
+proc _ddata_fill(ddata, type eltType, lo: integral, hi: integral, fill: int(8) = 0)
+
+ +
+
+proc _ddata_reallocate(oldDdata, type eltType, oldSize: integral, newSize: integral, subloc = c_sublocid_none, policy = chpl_ddataResizePolicy.normalInit)
+
+ +
+
+proc _ddata_free(data: _ddata, size: integral)
+
+ +
+
+operator ==(a: _ddata, b: _ddata)   where _to_borrowed(a.eltType) == _to_borrowed(b.eltType)
+
+ +
+
+operator ==(a: _ddata, b: _nilType)
+
+ +
+
+operator ==(a: _nilType, b: _ddata)
+
+ +
+
+operator !=(a: _ddata, b: _ddata)   where a.eltType == b.eltType
+
+ +
+
+operator !=(a: _ddata, b: _nilType)
+
+ +
+
+operator !=(a: _nilType, b: _ddata)
+
+ +
+
+proc _cond_test(x: _ddata)
+
+ +
+
+class _ref
+
+
+var _val
+
+ +
+ +
+
+proc chpl_rt_reset_task_spawn()
+
+ +
+
+proc chpl_resetTaskSpawn(numTasks)
+
+ +
+
+config param useAtomicTaskCnt = defaultAtomicTaskCount()
+
+ +
+
+proc defaultAtomicTaskCount() param
+
+ +
+
+config param commDiagsTrackEndCounts = false
+
+ +
+
+record endCountDiagsManager : contextManager
+
+
+var taskInfo : c_ptr(chpl_task_infoChapel_t)
+
+ +
+
+var prevDiagsDisabledVal : bool
+
+ +
+
+proc ref enterContext()
+
+ +
+
+proc exitContext(in unused: owned(Error?))
+
+ +
+ +
+
+class _EndCountBase
+
+
+var errors : chpl_TaskErrors
+
+ +
+ +
+
+class _EndCount : _EndCountBase
+
+
+type iType
+
+ +
+
+type taskType
+
+ +
+
+var i : iType
+
+ +
+
+var taskCnt : taskType
+
+ +
+
+proc init(type iType, type taskType)
+
+ +
+
+proc add(value: int, param order: memoryOrder)
+
+ +
+
+proc sub(value: int, param order: memoryOrder)
+
+ +
+
+proc waitFor(value: int, param order: memoryOrder)
+
+ +
+ +
+
+proc _endCountAlloc(param forceLocalTypes: bool)
+
+ +
+
+type _remoteEndCountType = _endCountAlloc(false).type
+
+ +
+
+proc _endCountFree(e: _EndCount)
+
+ +
+
+proc _upEndCount(e: _EndCount, param countRunningTasks = true)
+
+ +
+
+proc _upEndCount(e: _EndCount, param countRunningTasks = true, numTasks)
+
+ +
+
+proc chpl_comm_unordered_task_fence() : void
+
+ +
+
+proc chpl_comm_task_create()
+
+ +
+
+proc chpl_comm_task_end() : void
+
+ +
+
+proc chpl_after_forall_fence()
+
+ +
+
+proc _downEndCount(e: _EndCount, err: unmanaged(Error?))
+
+ +
+
+proc _waitEndCount(e: _EndCount, param countRunningTasks = true) throws
+
+ +
+
+proc _waitEndCount(e: _EndCount, param countRunningTasks = true, numTasks) throws
+
+ +
+
+proc _upDynamicEndCount(param countRunningTasks = true)
+
+ +
+
+proc _downDynamicEndCount(err: unmanaged(Error?))
+
+ +
+
+proc chpl_waitDynamicEndCount(param countRunningTasks = true) throws
+
+ +
+
+proc param(real(64)).transmute(type t) param : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc param(real(32)).transmute(type t) param : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc proc(real(?w)).transmute(type t) : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc param(uint(64)).transmute(type t) param : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc param(uint(32)).transmute(type t) param : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc proc(uint(?w)).transmute(type t) : t
+
+

Warning

+

This routine may change names / signatures

+
+
+ +
+
+proc chpl_typeSupportsPrimitiveCast(type t) param
+
+ +
+
+operator :(x: bool, type t: integral)
+
+ +
+
+operator :(x: bool, type t: chpl_anyreal)
+
+ +
+
+operator :(x: integral, type t: bool)
+
+ +
+
+operator :(x: integral, type t: integral)
+
+ +
+
+operator :(x: integral, type t: chpl_anyreal)
+
+ +
+
+operator :(x: chpl_anyreal, type t: bool)
+
+ +
+
+operator :(x: chpl_anyreal, type t: integral)
+
+ +
+
+operator :(x: chpl_anyreal, type t: chpl_anyreal)
+
+ +
+
+proc chpl_checkCastAbstractEnumError(type enumType, type dstType) param
+
+ +
+
+operator :(x: enum, type t: bool) throws
+
+

Warning

+

enum-to-bool casts are likely to be deprecated in the future

+
+
+ +
+
+operator :(x: enum, type t: enum)   where x.type == t
+
+ +
+
+operator :(x: enum, type t: chpl_anyreal) throws
+
+

Warning

+

enum-to-float casts are likely to be deprecated in the future

+
+
+ +
+
+operator :(x: _nilType, type t: unmanaged(class))
+
+ +
+
+operator :(x: _nilType, type t: borrowed(class))
+
+ +
+
+proc chpl_castUnmanagedError(param typeStr: string) param
+
+ +
+
+operator :(x: owned(class), type t: unmanaged(class))
+
+ +
+
+operator :(x: owned(class?), type t: unmanaged(class))
+
+ +
+
+operator :(x: owned(class), type t: unmanaged(class?))
+
+ +
+
+operator :(x: owned(class?), type t: unmanaged(class?))
+
+ +
+
+operator :(x: shared(class), type t: unmanaged(class))
+
+ +
+
+operator :(x: shared(class?), type t: unmanaged(class))
+
+ +
+
+operator :(x: shared(class), type t: unmanaged(class?))
+
+ +
+
+operator :(x: shared(class?), type t: unmanaged(class?))
+
+ +
+
+operator :(x: borrowed(class?), type t: unmanaged(class?))   where isSubtype(_to_unmanaged(x.type), t)
+
+ +
+
+operator :(x: borrowed(class), type t: unmanaged(class?))   where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t)
+
+ +
+
+operator :(x: borrowed(class), type t: unmanaged(class))   where isSubtype(_to_unmanaged(x.type), t)
+
+ +
+
+operator :(x: unmanaged(class?), type t: borrowed(class)) throws  where isSubtype(_to_nonnil(x.type), t)
+
+ +
+
+operator :(x: borrowed(class?), type t: borrowed(class)) throws  where isSubtype(_to_nonnil(x.type), t)
+
+ +
+
+operator :(x: borrowed(class?), type t: unmanaged(class)) throws  where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t)
+
+ +
+
+operator :(x: borrowed(class?), type t: borrowed(class)) throws  where isProperSubtype(t, _to_nonnil(x.type))
+
+ +
+
+operator :(x: borrowed(class?), type t: borrowed(class?))   where isProperSubtype(t, x.type)
+
+ +
+
+operator :(x: borrowed(class?), type t: unmanaged(class)) throws  where isProperSubtype(t, _to_nonnil(_to_unmanaged(x.type)))
+
+ +
+
+operator :(x: borrowed(class?), type t: unmanaged(class?))   where isProperSubtype(t, _to_unmanaged(x.type))
+
+ +
+
+operator :(x: borrowed(class), type t: unmanaged(class?))   where isProperSubtype(_to_nonnil(_to_borrowed(t)), x.type)
+
+ +
+
+operator :(x: bool, type t: chpl_anycomplex)
+
+ +
+
+operator :(x: integral, type t: chpl_anycomplex)
+
+ +
+
+operator :(x: chpl_anyreal, type t: chpl_anycomplex)
+
+ +
+
+operator :(x: chpl_anyimag, type t: chpl_anycomplex)
+
+ +
+
+operator :(x: chpl_anycomplex, type t: chpl_anycomplex)
+
+ +
+
+operator :(x: enum, type t: chpl_anycomplex) throws
+
+

Warning

+

enum-to-float casts are likely to be deprecated in the future

+
+
+ +
+
+operator :(x: bool, type t: chpl_anyimag)
+
+ +
+
+operator :(x: integral, type t: chpl_anyimag)
+
+ +
+
+operator :(x: chpl_anyreal, type t: chpl_anyimag)
+
+ +
+
+operator :(x: chpl_anyimag, type t: chpl_anyimag)
+
+ +
+
+operator :(x: chpl_anycomplex, type t: chpl_anyimag)
+
+ +
+
+operator :(x: enum, type t: chpl_anyimag) throws
+
+

Warning

+

enum-to-float casts are likely to be deprecated in the future

+
+
+ +
+
+operator :(x: chpl_anycomplex, type t: chpl_anyreal)
+
+ +
+
+operator :(x: chpl_anycomplex, type t: integral)
+
+ +
+
+operator :(x: chpl_anyimag, type t: chpl_anyreal)
+
+ +
+
+operator :(x: chpl_anyimag, type t: integral)
+
+ +
+
+operator :(x: chpl_anyimag, type t: bool)
+
+ +
+
+proc chpl__initCopy(type t, definedConst: bool) type
+
+ +
+
+proc chpl__initCopy(x: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__initCopy(const x, definedConst: bool)
+
+ +
+
+proc chpl__autoCopy(x: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__unref(x: _tuple)
+
+ +
+
+proc chpl__autoCopy(ir: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl__autoCopy(const x, definedConst: bool)
+
+ +
+
+proc chpl__autoDestroy(x: borrowed(RootClass))
+
+ +
+
+proc chpl__autoDestroy(type t)
+
+ +
+
+proc chpl__autoDestroy(x)
+
+ +
+
+proc chpl__autoDestroy(ir: _iteratorRecord)
+
+ +
+
+proc chpl__autoDestroy(x: _distribution)
+
+ +
+
+proc chpl__autoDestroy(x: domain)
+
+ +
+
+proc chpl__autoDestroy(x: [])
+
+ +
+
+proc chpl__delete(const arg)
+
+ +
+
+proc chpl__delete(const arr: [])
+
+ +
+
+proc chpl__delete(arg, const args ...)
+
+ +
+
+proc func() type
+
+

Warning

+

The ‘func’ procedure type constructor is deprecated, please use ‘proc’ syntax instead

+
+
+ +
+
+proc func(type rettype) type
+
+

Warning

+

The ‘func’ procedure type constructor is deprecated, please use ‘proc’ syntax instead

+
+
+ +
+
+proc func(type t ...?n, type rettype) type
+
+

Warning

+

The ‘func’ procedure type constructor is deprecated, please use ‘proc’ syntax instead

+
+
+ +
+
+proc isIterator(ic: _iteratorClass) param
+
+ +
+
+proc isIterator(ir: _iteratorRecord) param
+
+ +
+
+proc isIterator(not_an_iterator) param
+
+ +
+
+operator +=(ref lhs: int(8), rhs: int(8))
+

op= operators

+
+ +
+
+operator +=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator +=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator +=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator +=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator +=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator +=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator +=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator +=(ref lhs: real(32), rhs: real(32))
+
+ +
+
+operator +=(ref lhs: real(64), rhs: real(64))
+
+ +
+
+operator +=(ref lhs: imag(32), rhs: imag(32))
+
+ +
+
+operator +=(ref lhs: imag(64), rhs: imag(64))
+
+ +
+
+operator +=(ref lhs: complex(64), rhs: complex(64))
+
+ +
+
+operator +=(ref lhs: complex(128), rhs: complex(128))
+
+ +
+
+operator +=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator -=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator -=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator -=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator -=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator -=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator -=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator -=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator -=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator -=(ref lhs: real(32), rhs: real(32))
+
+ +
+
+operator -=(ref lhs: real(64), rhs: real(64))
+
+ +
+
+operator -=(ref lhs: imag(32), rhs: imag(32))
+
+ +
+
+operator -=(ref lhs: imag(64), rhs: imag(64))
+
+ +
+
+operator -=(ref lhs: complex(64), rhs: complex(64))
+
+ +
+
+operator -=(ref lhs: complex(128), rhs: complex(128))
+
+ +
+
+operator -=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator *=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator *=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator *=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator *=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator *=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator *=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator *=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator *=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator *=(ref lhs: real(32), rhs: real(32))
+
+ +
+
+operator *=(ref lhs: real(64), rhs: real(64))
+
+ +
+
+operator *=(ref lhs, rhs)   where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type))
+
+ +
+
+operator /=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator /=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator /=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator /=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator /=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator /=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator /=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator /=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator /=(ref lhs: real(32), rhs: real(32))
+
+ +
+
+operator /=(ref lhs: real(64), rhs: real(64))
+
+ +
+
+operator /=(ref lhs, rhs)   where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type))
+
+ +
+
+operator %=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator %=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator %=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator %=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator %=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator %=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator %=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator %=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator %=(ref lhs, rhs)   where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type))
+
+ +
+
+operator **=(ref lhs, rhs)
+
+ +
+
+operator &=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator &=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator &=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator &=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator &=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator &=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator &=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator &=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator &=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator |=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator |=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator |=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator |=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator |=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator |=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator |=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator |=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator |=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator ^=(ref lhs: int(8), rhs: int(8))
+
+ +
+
+operator ^=(ref lhs: int(16), rhs: int(16))
+
+ +
+
+operator ^=(ref lhs: int(32), rhs: int(32))
+
+ +
+
+operator ^=(ref lhs: int(64), rhs: int(64))
+
+ +
+
+operator ^=(ref lhs: uint(8), rhs: uint(8))
+
+ +
+
+operator ^=(ref lhs: uint(16), rhs: uint(16))
+
+ +
+
+operator ^=(ref lhs: uint(32), rhs: uint(32))
+
+ +
+
+operator ^=(ref lhs: uint(64), rhs: uint(64))
+
+ +
+
+operator ^=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator >>=(ref lhs: int(?w), rhs: integral)
+
+ +
+
+operator >>=(ref lhs: uint(?w), rhs: integral)
+
+ +
+
+operator >>=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator <<=(ref lhs: int(?w), rhs: integral)
+
+ +
+
+operator <<=(ref lhs: uint(?w), rhs: integral)
+
+ +
+
+operator <<=(ref lhs, rhs)   where !(isNumericType(lhs.type) && isNumericType(rhs.type))
+
+ +
+
+operator <=>(ref lhs, ref rhs)
+

swap operator

+
+ +
+
+operator +(a: uint(64), param b: uint(64))
+
+ +
+
+operator +(param a: uint(64), b: uint(64))
+
+ +
+
+operator +(a: int(64), param b: int(64))
+
+ +
+
+operator +(param a: int(64), b: int(64))
+
+ +
+
+operator -(a: uint(64), param b: uint(64))
+
+ +
+
+operator -(param a: uint(64), b: uint(64))
+
+ +
+
+operator -(a: int(64), param b: int(64))
+
+ +
+
+operator -(param a: int(64), b: int(64))
+
+ +
+
+operator *(a: uint(64), param b: uint(64))
+
+ +
+
+operator *(param a: uint(64), b: uint(64))
+
+ +
+
+operator *(a: int(64), param b: int(64))
+
+ +
+
+operator *(param a: int(64), b: int(64))
+
+ +
+
+operator /(a: int(64), param b: int(64))
+
+ +
+
+operator /(a: uint(64), param b: uint(64))
+
+ +
+
+operator /(param a: uint(64), b: uint(64))
+
+ +
+
+operator /(param a: int(64), b: int(64))
+
+ +
+
+operator **(a: uint(64), param b: uint(64))
+
+ +
+
+operator **(param a: uint(64), b: uint(64))
+
+ +
+
+operator **(a: int(64), param b: int(64))
+
+ +
+
+operator **(param a: int(64), b: int(64))
+
+ +
+
+operator %(a: uint(64), param b: uint(64))
+
+ +
+
+operator %(param a: uint(64), b: uint(64))
+
+ +
+
+operator %(a: int(64), param b: int(64))
+
+ +
+
+operator %(param a: int(64), b: int(64))
+
+ +
+
+operator ==(a: uint(8), b: int(8))
+
+ +
+
+operator ==(a: uint(16), b: int(16))
+
+ +
+
+operator ==(a: uint(32), b: int(32))
+
+ +
+
+operator ==(a: uint(64), b: int(64))
+
+ +
+
+operator ==(a: int(8), b: uint(8))
+
+ +
+
+operator ==(a: int(16), b: uint(16))
+
+ +
+
+operator ==(a: int(32), b: uint(32))
+
+ +
+
+operator ==(a: int(64), b: uint(64))
+
+ +
+
+operator !=(a: uint(8), b: int(8))
+
+ +
+
+operator !=(a: uint(16), b: int(16))
+
+ +
+
+operator !=(a: uint(32), b: int(32))
+
+ +
+
+operator !=(a: uint(64), b: int(64))
+
+ +
+
+operator !=(a: int(8), b: uint(8))
+
+ +
+
+operator !=(a: int(16), b: uint(16))
+
+ +
+
+operator !=(a: int(32), b: uint(32))
+
+ +
+
+operator !=(a: int(64), b: uint(64))
+
+ +
+
+operator >(a: uint(8), b: int(8))
+
+ +
+
+operator >(a: uint(16), b: int(16))
+
+ +
+
+operator >(a: uint(32), b: int(32))
+
+ +
+
+operator >(a: uint(64), b: int(64))
+
+ +
+
+operator >(a: int(8), b: uint(8))
+
+ +
+
+operator >(a: int(16), b: uint(16))
+
+ +
+
+operator >(a: int(32), b: uint(32))
+
+ +
+
+operator >(a: int(64), b: uint(64))
+
+ +
+
+operator >(param a: uint(8), b: uint(8))
+
+ +
+
+operator >(param a: uint(16), b: uint(16))
+
+ +
+
+operator >(param a: uint(32), b: uint(32))
+
+ +
+
+operator >(param a: uint(64), b: uint(64))
+
+ +
+
+operator >(param a: int(8), b: int(8))
+
+ +
+
+operator >(param a: int(16), b: int(16))
+
+ +
+
+operator >(param a: int(32), b: int(32))
+
+ +
+
+operator >(param a: int(64), b: int(64))
+
+ +
+
+operator >=(a: uint(8), b: int(8))
+
+ +
+
+operator >=(a: uint(16), b: int(16))
+
+ +
+
+operator >=(a: uint(32), b: int(32))
+
+ +
+
+operator >=(a: uint(64), b: int(64))
+
+ +
+
+operator >=(a: int(8), b: uint(8))
+
+ +
+
+operator >=(a: int(16), b: uint(16))
+
+ +
+
+operator >=(a: int(32), b: uint(32))
+
+ +
+
+operator >=(a: int(64), b: uint(64))
+
+ +
+
+operator >=(a: uint(8), param b: uint(8))
+
+ +
+
+operator >=(a: uint(16), param b: uint(16))
+
+ +
+
+operator >=(a: uint(32), param b: uint(32))
+
+ +
+
+operator >=(a: uint(64), param b: uint(64))
+
+ +
+
+operator >=(a: int(8), param b: int(8))
+
+ +
+
+operator >=(a: int(16), param b: int(16))
+
+ +
+
+operator >=(a: int(32), param b: int(32))
+
+ +
+
+operator >=(a: int(64), param b: int(64))
+
+ +
+
+operator <=(a: uint(8), b: int(8))
+
+ +
+
+operator <=(a: uint(16), b: int(16))
+
+ +
+
+operator <=(a: uint(32), b: int(32))
+
+ +
+
+operator <=(a: uint(64), b: int(64))
+
+ +
+
+operator <=(a: int(8), b: uint(8))
+
+ +
+
+operator <=(a: int(16), b: uint(16))
+
+ +
+
+operator <=(a: int(32), b: uint(32))
+
+ +
+
+operator <=(a: int(64), b: uint(64))
+
+ +
+
+operator <=(param a: uint(8), b: uint(8))
+
+ +
+
+operator <=(param a: uint(16), b: uint(16))
+
+ +
+
+operator <=(param a: uint(32), b: uint(32))
+
+ +
+
+operator <=(param a: uint(64), b: uint(64))
+
+ +
+
+operator <=(param a: int(8), b: int(8))
+
+ +
+
+operator <=(param a: int(16), b: int(16))
+
+ +
+
+operator <=(param a: int(32), b: int(32))
+
+ +
+
+operator <=(param a: int(64), b: int(64))
+
+ +
+
+proc isGenericType(type t) param
+
+ +
+
+proc isNilableClassType(type t) param
+
+ +
+
+proc isNonNilableClassType(type t) param
+
+ +
+
+proc isBorrowedOrUnmanagedClassType(type t: unmanaged) param
+
+ +
+
+proc isBorrowedOrUnmanagedClassType(type t: borrowed) param
+
+ +
+
+proc isBorrowedOrUnmanagedClassType(type t) param
+
+ +
+
+const QIO_STYLE_ELEMENT_STRING : int
+
+ +
+
+const QIO_STYLE_ELEMENT_COMPLEX : int
+
+ +
+
+const QIO_STYLE_ELEMENT_ARRAY : int
+
+ +
+
+const QIO_STYLE_ELEMENT_AGGREGATE : int
+
+ +
+
+const QIO_STYLE_ELEMENT_TUPLE : int
+
+ +
+
+const QIO_STYLE_ELEMENT_BYTE_ORDER : int
+
+ +
+
+const QIO_STYLE_ELEMENT_IS_NATIVE_BYTE_ORDER : int
+
+ +
+
+const QIO_STYLE_ELEMENT_SKIP_UNKNOWN_FIELDS : int
+
+ +
+
+const QIO_ARRAY_FORMAT_SPACE : int
+
+ +
+
+const QIO_ARRAY_FORMAT_CHPL : int
+
+ +
+
+const QIO_ARRAY_FORMAT_JSON : int
+
+ +
+
+const QIO_AGGREGATE_FORMAT_BRACES : int
+
+ +
+
+const QIO_AGGREGATE_FORMAT_CHPL : int
+
+ +
+
+const QIO_AGGREGATE_FORMAT_JSON : int
+
+ +
+
+const QIO_TUPLE_FORMAT_CHPL : int
+
+ +
+
+const QIO_TUPLE_FORMAT_SPACE : int
+
+ +
+
+const QIO_TUPLE_FORMAT_JSON : int
+
+ +
+
+class chpl_ModuleDeinit : writeSerializable
+
+
+const moduleName : c_ptrConst(c_char)
+
+ +
+
+const deinitFun : chpl_c_fn_ptr
+
+ +
+
+const prevModule : unmanaged(chpl_ModuleDeinit?)
+
+ +
+
+override proc serialize(writer, ref serializer) throws
+
+ +
+ +
+
+var chpl_moduleDeinitFuns = nil : unmanaged(chpl_ModuleDeinit?)
+
+ +
+
+proc chpl_checkLegalTypeFieldAccessor(thisArg, type fieldType, param fieldName) type
+
+ +
+
+proc chpl_checkLegalTypeFieldAccessor(type thisArg, type fieldType, param fieldName) type
+
+ +
+
+proc _to_unmanaged(type t) type
+
+ +
+
+proc _to_unmanaged(arg)
+
+ +
+
+proc _to_borrowed(type t) type
+
+ +
+
+proc _to_borrowed(arg)
+
+ +
+
+proc _to_nonnil(type t) type
+
+ +
+
+proc _to_nonnil(arg)
+
+ +
+
+proc _to_nilable(type t) type
+
+ +
+
+proc _to_nilable(arg)
+
+ +
+
+proc chpl_checkBorrowIfVar(arg, param isWhile)
+
+ +
+
+proc chpl_checkBorrowIfVar(type arg, param isWhile)
+
+ +
+
+proc _removed_cast(in x)
+
+ +
+
+proc chpl_supportsBoundedCoforall(iterable, param zippered) param
+
+ +
+
+proc chpl_boundedCoforallSize(iterable, param zippered)
+
+ +
+
+proc chpl_field_neq(a: [] ?t, b: [] t)
+

The following chpl_field_*() overloads support compiler-generated +comparison operators for records with array fields

+
+ +
+
+proc chpl_field_neq(a, b)   where !isArrayType(a.type)
+
+ +
+
+proc chpl_field_lt(a: [] ?t, b: [] t)
+
+ +
+
+proc chpl_field_lt(a, b)   where !isArrayType(a.type)
+
+ +
+
+proc chpl_field_gt(a: [] ?t, b: [] t)
+
+ +
+
+proc chpl_field_gt(a, b)   where !isArrayType(a.type)
+
+ +
+
+proc chpl__bothLocal(const ref a, const ref b)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelBase/currentTask.html b/docs/internal/modules/internal/ChapelBase/currentTask.html new file mode 100644 index 000000000..9d15f2c36 --- /dev/null +++ b/docs/internal/modules/internal/ChapelBase/currentTask.html @@ -0,0 +1,202 @@ + + + + + + + currentTask — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

currentTask

+

Usage

+
use ChapelBase.currentTask;
+
+
+

or

+
import ChapelBase.currentTask;
+
+
+
+
+proc yieldExecution()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelContext.html b/docs/internal/modules/internal/ChapelContext.html new file mode 100644 index 000000000..40759304c --- /dev/null +++ b/docs/internal/modules/internal/ChapelContext.html @@ -0,0 +1,198 @@ + + + + + + + ChapelContext — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelContext

+

Usage

+
use ChapelContext;
+
+
+

or

+
import ChapelContext;
+
+
+
+
+proc chpl__verifyTypeContext(x)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelDebugPrint.html b/docs/internal/modules/internal/ChapelDebugPrint.html new file mode 100644 index 000000000..fc4b67420 --- /dev/null +++ b/docs/internal/modules/internal/ChapelDebugPrint.html @@ -0,0 +1,238 @@ + + + + + + + ChapelDebugPrint — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelDebugPrint

+

Usage

+
use ChapelDebugPrint;
+
+
+

or

+
import ChapelDebugPrint;
+
+
+

Debug printing for internal modules.

+

In order to work around problems with resolution order +(commonly, stdout not defined in methods in DefaultRectangular), +this module implements a debug printing facility that can +be used before IO.chpl is resolved (or initialized).

+
+
+proc chpl_debug_stringify(args ...) : string
+
+ +
+
+proc chpl_debug_writeln(args ...)
+
+ +
+
+config param chpl__testParFlag = false
+
+ +
+
+var chpl__testParOn = false
+
+ +
+
+proc chpl__testParStart()
+
+ +
+
+proc chpl__testParStop()
+
+ +
+
+proc chpl__testPar(args ...)
+
+ +
+
+proc chpl__testParWriteln(args ...)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelDistribution.html b/docs/internal/modules/internal/ChapelDistribution.html new file mode 100644 index 000000000..db51569fa --- /dev/null +++ b/docs/internal/modules/internal/ChapelDistribution.html @@ -0,0 +1,1428 @@ + + + + + + + ChapelDistribution — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelDistribution

+

Usage

+
use ChapelDistribution;
+
+
+

or

+
import ChapelDistribution;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+record _distribution : writeSerializable, readDeserializable
+
+
+var _pid : int
+
+ +
+
+var _instance
+
+ +
+
+var _unowned : bool
+
+ +
+
+proc init(_pid: int, _instance, _unowned: bool)
+
+ +
+
+proc init(value)
+
+ +
+
+proc init=(const ref other: _distribution)
+
+ +
+
+proc _value
+
+ +
+
+proc _do_destroy()
+
+ +
+
+proc deinit()
+
+ +
+
+proc clone()
+
+ +
+
+proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false)
+
+ +
+
+proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, definedConst: bool = false)
+
+ +
+
+proc newAssociativeDom(type idxType, param parSafe: bool = true)
+
+ +
+
+proc newSparseDom(param rank: int, type idxType, dom: domain)
+
+ +
+
+proc idxToLocale(ind)
+
+ +
+
+proc ref deserialize(reader, ref deserializer) throws
+
+ +
+
+proc type deserializeFrom(reader, ref deserializer) throws
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+proc displayRepresentation()
+
+ +
+
+proc targetLocales() const ref
+

Return an array of locales over which this distribution was declared.

+
+ +
+ +
+
+class BaseDist
+
+
+var _doms_containing_dist : int
+
+ +
+
+var _domsLock : chpl_LocalSpinlock
+
+ +
+
+var _free_when_no_doms : bool
+
+ +
+
+var pid : int = nullPid
+
+ +
+
+proc deinit()
+
+ +
+
+proc remove() : unmanaged(BaseDist?)
+
+ +
+
+proc remove_dom(x: unmanaged(BaseDom)) : bool
+
+ +
+
+proc add_dom(x: unmanaged(BaseDom))
+
+ +
+
+proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds)
+
+ +
+
+proc dsiNewAssociativeDom(type idxType, param parSafe: bool)
+
+ +
+
+proc dsiNewSparseDom(param rank: int, type idxType, dom: domain)
+
+ +
+
+proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiRequiresPrivatization() param
+
+ +
+
+proc dsiDestroyDist()
+
+ +
+
+proc trackDomains() param
+
+ +
+
+proc dsiTrackDomains()
+
+ +
+
+proc singleton() param
+
+ +
+
+proc dsiIsLayout() param
+
+ +
+ +
+
+class BaseDom
+
+
+var _arrs_head : unmanaged(BaseArr?)
+
+ +
+
+var _arrs_containing_dom : int
+
+ +
+
+var _arrsLock : chpl_LocalSpinlock
+
+ +
+
+var _free_when_no_arrs : bool
+
+ +
+
+var pid : int = nullPid
+
+ +
+
+var definedConst : bool
+
+ +
+
+proc init()
+
+ +
+
+proc deinit()
+
+ +
+
+iter _arrs : unmanaged(BaseArr)
+
+ +
+
+proc dsiMyDist() : unmanaged(BaseDist)
+
+ +
+
+proc dnsError(param op: string)
+
+ +
+
+proc dsiLow
+
+ +
+
+proc dsiHigh
+
+ +
+
+proc dsiAlignedLow
+
+ +
+
+proc dsiAlignedHigh
+
+ +
+
+proc dsiFirst
+
+ +
+
+proc dsiLast
+
+ +
+
+proc dsiStride
+
+ +
+
+proc dsiAlignment
+
+ +
+
+proc dsiIndexOrder(i)
+
+ +
+
+proc dsiCreateIndexBuffer(size)
+
+ +
+
+proc trackArrays()
+
+ +
+
+proc remove() : (unmanaged(BaseDom?), unmanaged(BaseDist?))
+
+ +
+
+proc remove_arr(x: unmanaged(BaseArr), param rmFromList = true) : bool
+
+ +
+
+proc add_arr(x: unmanaged(BaseArr), param locking = true, param addToList = true)
+
+ +
+
+proc remove_containing_arr(x: unmanaged(BaseArr))
+
+ +
+
+proc add_containing_arr(x: unmanaged(BaseArr))
+
+ +
+
+proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiRequiresPrivatization() param
+
+ +
+
+proc linksDistribution() param
+
+ +
+
+proc dsiLinksDistribution()
+
+ +
+
+proc dsiDestroyDom()
+
+ +
+
+proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiSupportsAutoLocalAccess() param
+
+ +
+
+proc dsiSupportsOffsetAutoLocalAccess() param
+
+ +
+
+proc dsiAutoLocalAccessOffsetCheck(offsets)
+
+ +
+
+proc dsiIteratorYieldsLocalElements() param
+
+ +
+
+proc isRectangular() param
+
+ +
+
+proc isAssociative() param
+
+ +
+
+proc isSparse() param
+
+ +
+
+proc type isDefaultRectangular() param
+
+ +
+
+proc isDefaultRectangular() param
+
+ +
+
+proc isSliceDomainView() param
+
+ +
+
+proc isRankChangeDomainView() param
+
+ +
+
+proc isReindexDomainView() param
+
+ +
+ +
+
+class BaseRectangularDom : BaseDom
+
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+param strides : strideKind
+
+ +
+
+proc hasUnitStride() param
+
+ +
+
+proc hasPosNegUnitStride() param
+
+ +
+
+override proc isRectangular() param
+
+ +
+
+proc getBaseArrType() type
+
+ +
+
+proc deinit()
+
+ +
+
+proc dsiAdd(in x)
+
+ +
+
+proc dsiRemove(x)
+
+ +
+ +
+
+class BaseSparseDomImpl : BaseSparseDom(?)
+
+
+var nnzDom = {1..0}
+
+ +
+
+proc deinit()
+
+ +
+
+override proc dsiBulkAdd(inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale)
+
+ +
+
+override proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale)
+
+ +
+
+proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int
+
+ +
+
+proc _grow(size: int, factor = arrayAsVecGrowthFactor)
+

Grow domain if necessary

+
+ +
+
+proc _shrink(size: int, factor = arrayAsVecGrowthFactor)
+

Shrink domain if necessary

+
+ +
+
+proc _bulkGrow()
+
+ +
+
+proc _countDuplicates(arr)   where isArray(arr)
+
+ +
+
+proc bulkAdd_prepareInds(ref inds, dataSorted, isUnique, cmp)
+
+ +
+
+proc __getActualInsertPts(d, inds, isUnique)
+
+ +
+
+proc dsiClear()
+
+ +
+ +
+
+record SparseIndexBuffer
+
+
+param rank : int
+
+ +
+
+var obj : borrowed(BaseSparseDom(?))
+
+ +
+
+type idxType = if rank == 1 then int else rank * int
+
+ +
+
+var bufDom = domain(1)
+
+ +
+
+var buf : [bufDom] idxType
+
+ +
+
+var cur = 0
+
+ +
+
+proc init(size, param rank: int, obj)
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc ref add(idx: idxType)
+
+ +
+
+proc ref commit()
+
+ +
+ +
+
+class BaseSparseDom : BaseDom
+
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+var parentDom
+
+ +
+
+override proc isSparse() param
+

var nnz = 0; //: int;

+
+ +
+
+proc getNNZ() : int
+
+ +
+
+proc deinit()
+
+ +
+
+proc dsiClear()
+
+ +
+
+proc dsiBulkAdd(inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int
+
+ +
+
+proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int
+
+ +
+
+proc boundsCheck(ind: index(rank, idxType)) : void
+
+ +
+
+proc canDoDirectAssignment(rhs: domain)
+
+ +
+
+proc dsiDim(d: int)
+
+ +
+
+proc dsiDims()
+
+ +
+
+proc dsiNumIndices
+
+ +
+
+proc dsiSize
+
+ +
+
+override proc dsiLow
+
+ +
+
+override proc dsiHigh
+
+ +
+
+override proc dsiStride
+
+ +
+
+override proc dsiAlignment
+
+ +
+
+override proc dsiFirst : rank*idxType
+
+ +
+
+override proc dsiLast : rank*idxType
+
+ +
+
+override proc dsiAlignedLow
+
+ +
+
+override proc dsiAlignedHigh
+
+ +
+
+override proc dsiCreateIndexBuffer(size)
+
+ +
+ +
+
+class BaseAssociativeDom : BaseDom
+
+
+override proc isAssociative() param
+
+ +
+
+proc deinit()
+
+ +
+
+proc dsiClear()
+
+ +
+
+proc dsiAdd(in idx)
+
+ +
+
+proc rank param
+
+ +
+ +
+
+class BaseArr
+
+
+var prev : unmanaged(BaseArr?)
+
+ +
+
+var next : unmanaged(BaseArr?)
+
+ +
+
+var pid : int = nullPid
+
+ +
+
+var _decEltRefCounts : bool = false
+
+ +
+
+var _resizePolicy = chpl_ddataResizePolicy.normalInit
+
+ +
+
+proc chpl__rvfMe() param
+
+ +
+
+proc isSliceArrayView() param
+
+ +
+
+proc isRankChangeArrayView() param
+
+ +
+
+proc isReindexArrayView() param
+
+ +
+
+proc deinit()
+
+ +
+
+proc dsiStaticFastFollowCheck(type leadType) param
+
+ +
+
+proc dsiGetBaseDom() : unmanaged(BaseDom)
+
+ +
+
+proc remove(param rmFromList: bool)
+
+ +
+
+proc chpl_setResizePolicy(policy: chpl_ddataResizePolicy)
+
+ +
+
+proc chpl_isElementTypeDefaultInitializable() : bool
+
+ +
+
+proc chpl_isElementTypeNonNilableClass() : bool
+
+ +
+
+proc chpl_unsafeAssignIsClassElementNil(manager, idx) : bool
+
+ +
+
+proc chpl_unsafeAssignHaltUninitializedElement(idx)
+
+ +
+
+proc dsiElementInitializationComplete()
+
+ +
+
+proc dsiElementDeinitializationComplete()
+
+ +
+
+proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+proc dsiReallocate(d: domain)
+
+ +
+
+proc dsiPostReallocate()
+
+ +
+
+proc _purge(ind: int)
+
+ +
+
+proc _resize(length: int, old_map)
+
+ +
+
+proc sparseShiftArray(shiftrange, initrange)
+
+ +
+
+proc sparseShiftArrayBack(shiftrange)
+
+ +
+
+proc sparseBulkShiftArray(shiftMap, oldnnz)
+
+ +
+
+proc _defaultInitSlot(slot: int)
+
+ +
+
+proc _deinitSlot(slot: int)
+
+ +
+
+proc _startRehash(newSize: int)
+
+ +
+
+proc _finishRehash(oldSize: int)
+
+ +
+
+proc _moveElementDuringRehash(oldslot: int, newslot: int)
+
+ +
+
+proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiSupportsAlignedFollower() param
+
+ +
+
+proc dsiSupportsPrivatization() param
+
+ +
+
+proc dsiRequiresPrivatization() param
+
+ +
+
+proc type isDefaultRectangular() param
+
+ +
+
+proc isDefaultRectangular() param
+
+ +
+
+proc doiCanBulkTransferRankChange() param
+
+ +
+
+proc decEltCountsIfNeeded()
+
+ +
+
+proc dsiIteratorYieldsLocalElements() param
+
+ +
+ +
+
+class AbsBaseArr : BaseArr
+

This subclass is created to allow eltType to be defined in one place +instead of every subclass of BaseArr. It can’t be put on BaseArr due to +BaseDom relying on BaseArr not being generic (it creates a list of BaseArrs +that it refers to and lists can’t contain multiple instantiations of a +generic).

+
+
+type eltType
+
+ +
+
+override proc decEltCountsIfNeeded()
+
+ +
+ +
+
+class BaseArrOverRectangularDom : BaseArr
+

BaseArrOverRectangularDom has this signature so that dsiReallocate +can be overridden with the right tuple size.

+

Note that eltType is not included here. eltType could be included +in a base class, but here we’re looking for a way to narrow +overloaded functions to only those working with a particular +kind of bounding box. So if eltType is included, we should make +another base class.

+
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+param strides : strideKind
+
+ +
+
+proc hasUnitStride() param
+
+ +
+
+proc hasPosNegUnitStride() param
+
+ +
+
+proc dsiReallocate(bounds: rank*range(idxType, boundKind.both, strides))
+
+ +
+
+override proc dsiPostReallocate()
+
+ +
+
+proc deinit()
+
+ +
+ +
+
+class BaseRectangularArr : BaseArrOverRectangularDom(?)
+
+
+type eltType
+

rank, idxType, strides are from BaseArrOverRectangularDom

+
+ +
+
+proc deinit()
+
+ +
+
+override proc chpl_isElementTypeDefaultInitializable() : bool
+
+ +
+
+override proc chpl_isElementTypeNonNilableClass() : bool
+
+ +
+
+override proc chpl_unsafeAssignHaltUninitializedElement(idx)
+
+ +
+
+override proc decEltCountsIfNeeded()
+
+ +
+ +
+
+class BaseSparseArr : AbsBaseArr(?)
+
    +
  • BaseSparseArr is very basic/generic so that we have some flexibility in

  • +
  • implementing sparse array classes.

  • +
+
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+var dom
+
+ +
+
+override proc dsiGetBaseDom()
+

: DefaultSparseDom(?);

+
+ +
+
+proc deinit()
+
+ +
+ +
+
+class BaseSparseArrImpl : BaseSparseArr(?)
+
    +
  • All the common helpers/methods in implementations of internal sparse arrays

  • +
  • go here.

  • +
+
+
+var data : [dom.nnzDom] eltType
+
+ +
+
+proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool)
+
+ +
+
+proc deinit()
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiElementDeinitializationComplete()
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+var irv : eltType
+
+ +
+
+proc IRV ref
+
+ +
+
+override proc sparseBulkShiftArray(shiftMap, oldnnz)
+
+ +
+
+override proc sparseShiftArray(shiftrange, initrange)
+
+ +
+
+override proc sparseShiftArrayBack(shiftrange)
+
+ +
+ +
+
+proc _delete_dist(dist: unmanaged(BaseDist), privatized: bool)
+
+ +
+
+proc _delete_dom(dom, privatized: bool)
+
+ +
+
+proc _delete_arr(arr: unmanaged(BaseArr), param privatized: bool, deinitElts = true)
+
+ +
+
+proc chpl_assignDomainWithGetSetIndices(lhs: ?t, rhs: domain)   where isSubtype(_to_borrowed(t), BaseRectangularDom)
+
+ +
+
+proc chpl_assignDomainWithIndsIterSafeForRemoving(lhs: ?t, rhs: domain)   where isSubtype(_to_borrowed(t), BaseSparseDom) || isSubtype(_to_borrowed(t), BaseAssociativeDom)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelDomain.html b/docs/internal/modules/internal/ChapelDomain.html new file mode 100644 index 000000000..d9eddef11 --- /dev/null +++ b/docs/internal/modules/internal/ChapelDomain.html @@ -0,0 +1,2094 @@ + + + + + + + ChapelDomain — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelDomain

+

Usage

+
use ChapelDomain;
+
+
+

or

+
import ChapelDomain;
+
+
+
+
+config const defaultHashTableResizeThreshold = 0.5
+

Fractional value that specifies how full this domain can be +before requesting additional memory. The default value of +0.5 means that the map will not resize until the map is more +than 50% full. The acceptable values for this argument are +between 0 and 1, exclusive, meaning (0,1). A lower +defaultHashTableResizeThreshold value can potentially +improve indexing performance, since the table will likely +have fewer collisions, while a higher value can help save +memory. +Note that this value also impacts all of Chapel’s hash-based +data structures, such as set and map.

+
+ +
+
+config param noNegativeStrideWarnings = false
+

Compile with -snoNegativeStrideWarnings +to suppress the warning about arrays and slices with negative strides.

+
+ +
+
+proc _getDomain(value)
+
+ +
+
+proc tupleOfRangesSlice(base, slice)   where chpl__isTupleOfRanges(base) && chpl__isTupleOfRanges(slice)
+
+ +
+
+proc chpl__buildDomainRuntimeType(dist, param rank: int, type idxType = int, param strides: strideKind = strideKind.one) type
+
+ +
+
+proc chpl__buildDomainRuntimeType(dist, type idxType, param parSafe: bool = assocParSafeDefault) type
+
+ +
+
+proc chpl__buildSparseDomainRuntimeType(dist, parentDom: domain) type
+
+ +
+
+proc chpl__buildSparseDomainRuntimeTypeForParentDomain(parentDom) type
+
+ +
+
+proc chpl__buildSparseDomainRuntimeTypeForParentDomain(type parentDom)
+
+ +
+
+proc chpl__convertRuntimeTypeToValue(dist, param rank: int, type idxType = int, param strides: strideKind, param isNoInit: bool, definedConst: bool)
+
+ +
+
+proc chpl__convertRuntimeTypeToValue(dist, type idxType, param parSafe: bool, param isNoInit: bool, definedConst: bool)
+
+ +
+
+proc chpl__convertRuntimeTypeToValue(dist, parentDom: domain, param isNoInit: bool, definedConst: bool)
+
+ +
+
+proc chpl__convertValueToRuntimeType(dom: domain) type  where isSubtype(dom._value.type, BaseRectangularDom)
+
+ +
+
+proc chpl__convertValueToRuntimeType(dom: domain) type  where isSubtype(dom._value.type, BaseAssociativeDom)
+
+ +
+
+proc chpl__convertValueToRuntimeType(dom: domain) type  where isSubtype(dom._value.type, BaseSparseDom)
+
+ +
+
+proc chpl__convertValueToRuntimeType(dom: domain) type
+
+ +
+
+proc chpl__buildSubDomainType(dom: domain) type
+
+ +
+
+proc chpl__isTupleOfRanges(tup) param
+
+ +
+
+proc chpl__buildDomainExpr(ranges ..., definedConst)   where chpl__isTupleOfRanges(ranges)
+
+ +
+
+proc chpl__buildDomainExpr(const keys ..., definedConst)
+
+ +
+
+proc chpl__ensureDomainExpr(const ref x: domain) const ref
+
+ +
+
+proc chpl__ensureDomainExpr(x ...)
+
+ +
+
+proc chpl__ensureDomainExpr(type t)
+
+ +
+
+proc chpl__isRectangularDomType(type domainType) param
+
+ +
+
+proc chpl__isSparseDomType(type domainType) param
+
+ +
+
+proc chpl__parentDomainFromDomainRuntimeType(type domainType)
+
+ +
+
+proc chpl__domainFromArrayRuntimeType(type rtt)
+
+ +
+
+proc chpl_isAssociativeDomClass(dc: BaseAssociativeDom) param
+
+ +
+
+proc chpl_isAssociativeDomClass(dc) param
+
+ +
+
+proc chpl__checkDomainsMatch(a: [], b)
+
+ +
+
+proc chpl__checkDomainsMatch(a: _iteratorRecord, b)
+
+ +
+
+proc chpl_countDomHelp(dom, counts)
+
+ +
+
+operator #( dom: domain,  counts: integral)
+
+ +
+
+operator #( dom: domain,  counts: _tuple)
+
+ +
+
+operator #( dom: domain,  counts)
+
+ +
+
+operator +(d: domain, i: ?t)   where d.isRectangular() && noRDadds(t)
+
+ +
+
+operator +(i: ?t, d: domain)   where d.isRectangular() && noRDadds(t)
+
+ +
+
+operator -(d: domain, i: ?t)   where d.isRectangular() && noRDadds(t)
+
+ +
+
+operator +(in d: domain, i: index(d))   where d.isIrregular()
+
+

Warning

+

‘+’ on domains is unstable and may change in the future

+
+
+ +
+
+operator +(i, in d: domain)   where isSubtype(i.type, index(d)) && d.isIrregular()
+
+

Warning

+

‘+’ on domains is unstable and may change in the future

+
+
+ +
+
+operator +(in d1: domain, d2: domain)   where d1.type == d2.type && d1.isIrregular() && d2.isIrregular()
+
+

Warning

+

‘+’ on domains is unstable and may change in the future

+
+
+ +
+
+operator +(d1: domain, d2: domain)
+
+ +
+
+operator +=(ref D: domain, idx)
+
+

Warning

+

‘+=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator +=(ref D: domain, param idx)
+
+

Warning

+

‘+=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator -(in d: domain, i: index(d))   where d.isIrregular()
+
+

Warning

+

‘-’ on domains is unstable and may change in the future

+
+
+ +
+
+operator -(in d1: domain, d2: domain)   where d1.type == d2.type && d1.isSparse()
+
+ +
+
+operator -(d1: domain, d2: domain)
+
+ +
+
+operator -=(ref D: domain, idx)
+
+

Warning

+

‘-=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator -=(ref D: domain, param idx)
+
+

Warning

+

‘-=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator ==(d1: domain, d2: domain)   where d1.isRectangular() && d2.isRectangular()
+
+ +
+
+operator !=(d1: domain, d2: domain)   where d1.isRectangular() && d2.isRectangular()
+
+ +
+
+operator ==(d1: domain, d2: domain)   where d1.isAssociative() && d2.isAssociative()
+
+ +
+
+operator !=(d1: domain, d2: domain)   where d1.isAssociative() && d2.isAssociative()
+
+ +
+
+operator ==(d1: domain, d2: domain)   where d1.isSparse() && d2.isSparse()
+
+ +
+
+operator !=(d1: domain, d2: domain)   where d1.isSparse() && d2.isSparse()
+
+ +
+
+operator ==(d1: domain, d2: domain)
+
+ +
+
+operator !=(d1: domain, d2: domain)
+
+ +
+
+proc chpl_sameDomainKind(d1: domain, d2: domain) param
+
+ +
+
+operator -(a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘-’ on domains is unstable and may change in the future

+
+
+ +
+
+operator -=(ref a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘-=’ on domains is unstable and may change in the future

+
+

We remove elements in the RHS domain from those in the LHS domain only if +they exist. If an element in the RHS is not present in the LHS, no error +occurs.

+
+ +
+
+operator |(a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘|’ on domains is unstable and may change in the future

+
+
+ +
+
+operator |=(ref a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

|=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator |=(a: domain, b: domain)   where a.isRectangular()
+
+ +
+
+operator +=(ref a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘+=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator &(a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘&’ on domains is unstable and may change in the future

+
+

We remove elements in the RHS domain from those in the LHS domain only if +they exist. If an element in the RHS is not present in the LHS, no error +occurs.

+
+ +
+
+operator &=(ref a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘&=’ on domains is unstable and may change in the future

+
+
+ +
+
+operator &=(a: domain, b: domain)   where a.isRectangular()
+
+ +
+
+operator ^(a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘^’ on domains is unstable and may change in the future

+
+
+ +
+
+operator ^=(ref a: domain, b: domain)   where a.type == b.type && a.isAssociative()
+
+

Warning

+

‘^=’ on domains is unstable and may change in the future

+
+

We remove elements in the RHS domain from those in the LHS domain only if +they exist. If an element in the RHS is not present in the LHS, it is +added to the LHS.

+
+ +
+
+operator ^=(a: domain, b: domain)   where a.isRectangular()
+
+ +
+
+operator +=(ref sd: domain, inds: [] index(sd))   where sd.isSparse()
+
+ +
+
+operator +=(ref sd: domain, d: domain)   where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType
+
+ +
+
+operator -=(ref sd: domain, inds: [] index(sd))   where sd.isSparse()
+
+ +
+
+operator -=(ref sd: domain, d: domain)   where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType
+
+ +
+
+operator =(ref a: domain, b: domain)
+
+ +
+
+proc chpl__checkTupIrregDomAssign(const ref d, const ref idx, param msg)
+
+ +
+
+proc chpl__isLegalRectTupDomAssign(d, t) param
+
+ +
+
+operator =(ref a: domain, b: _tuple)
+
+ +
+
+operator =(ref d: domain, r: range(?))
+
+ +
+
+operator =(ref a: domain, b)
+
+ +
+
+operator by(a: domain, b)
+
+ +
+
+operator by(a: domain, param b: integral)
+
+ +
+
+operator align(a: domain, b)
+
+ +
+
+proc chpl_domainDistIsLayout(d: domain) param
+
+ +
+
+proc chpl__coerceCopy(type dstType: _domain, rhs: _domain, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _domain, in rhs: _domain, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _domain, rhs: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _domain, in rhs: _tuple, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _domain, rhs: range(?), definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _domain, in rhs: range(?), definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool)
+
+ +
+
+proc chpl__coerceCopy(type dstType: _domain, rhs, definedConst: bool)
+
+ +
+
+proc chpl__coerceMove(type dstType: _domain, in rhs, definedConst: bool)
+
+ +
+
+record _domain : writeSerializable, readDeserializable
+

The domain type.

+
+
+var _pid : int
+
+ +
+
+var _instance
+
+ +
+
+var _unowned : bool
+
+ +
+
+proc chpl__promotionType() type
+
+ +
+
+proc init(_pid: int, _instance, _unowned: bool)
+
+ +
+
+proc init(value)
+
+ +
+
+proc init(d, param rank: int, type idxType = int, param strides = strideKind.one, definedConst: bool = false)
+
+ +
+
+proc init(d, param rank: int, type idxType = int, param strides = strideKind.one, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false)
+
+ +
+
+proc init(d, type idxType, param parSafe: bool = true, definedConst: bool = false)
+
+ +
+
+proc init(d, dom: domain, definedConst: bool = false)
+
+ +
+
+proc init=(const ref other: domain)   where other.isRectangular()
+
+ +
+
+proc init=(const ref other: domain)
+
+ +
+
+proc _value
+
+ +
+
+proc chpl__serialize()   where this._value.isDefaultRectangular()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+proc _do_destroy()
+
+ +
+
+proc deinit()
+
+ +
+
+proc distribution
+

Returns the domain map that implements this domain.

+
+ +
+
+proc dist
+

Prevent users from accessing internal datatypes unintentionally. It +used to be a public method deprecated in favor of domain.distribution.

+
+ +
+
+proc rank param
+

Returns the number of dimensions in this domain.

+
+ +
+
+proc idxType type
+

Returns the type used to represent the indices of this domain. +For a multidimensional domain, this represents the +per-dimension index type.

+
+ +
+
+proc fullIdxType type
+

Returns the full type used to represent the indices of this +domain. For a 1D or associative domain, this is the same +as idxType above. For a multidimensional domain, it +is rank * idxType.

+
+ +
+
+proc chpl_integralIdxType type
+
+ +
+
+proc strides param  where this.isRectangular()
+

Returns the ‘strides’ parameter of the domain.

+
+ +
+
+proc strides param  where this.isSparse()
+
+ +
+
+proc strides param  where this.isAssociative()
+
+ +
+
+proc hasUnitStride() param
+
+ +
+
+proc hasPosNegUnitStride() param
+
+ +
+
+proc stride
+

Returns the stride of the indices in this domain.

+
+ +
+
+proc stride param  where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne()
+
+ +
+
+proc alignment
+

Returns the alignment of the indices in this domain.

+
+ +
+
+proc alignment param  where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne()
+
+ +
+
+proc targetLocales() const ref
+

Returns an array of locales over which this domain +has been distributed.

+
+ +
+
+iter these()
+

Yield the domain indices

+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag))
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis, param fast: bool = false)   where tag == iterKind.follower
+
+ +
+
+proc this(d: domain)
+
+ +
+
+proc this(ranges ...rank)   where chpl__isTupleOfRanges(ranges)
+
+ +
+
+proc this(args ...rank)   where _validRankChangeArgs(args, _value.idxType)
+
+ +
+
+proc this(i: integral ...rank)
+
+ +
+
+proc this(args ...?numArgs)
+
+ +
+
+proc isEmpty() : bool
+

Returns true if the domain has no indices.

+
+ +
+
+proc size : int
+

Returns the number of indices in this domain as an int.

+
+ +
+
+proc sizeAs(type t: integral) : t
+

Returns the number of indices in this domain as the specified type.

+
+ +
+
+proc dims()
+

Returns a tuple of ranges describing the bounds of a rectangular domain. +For a sparse domain, returns the bounds of the parent domain.

+
+ +
+
+proc dim(d: int)
+

Returns a range representing the boundary of this +domain in a particular dimension.

+
+ +
+
+proc dim(param d: int)
+
+ +
+
+iter dimIter(param d, ind)
+
+ +
+
+proc shape : rank*int  where this.isRectangular() || this.isSparse()
+

Returns a tuple of int values representing the size of each +dimension.

+

For a sparse domain, this returns the shape of the parent domain.

+
+ +
+
+proc chpl_shapeAs(type t: integral)
+
+ +
+
+proc shape  where this.isAssociative()
+

Associative domains assumed to be 1-D.

+
+ +
+
+proc shape
+

Unsupported case

+
+ +
+
+proc indices
+

This error overload is here because without it, the domain’s +indices tend to be promoted across the .indices calls of +their idxType which can be very confusing.

+
+ +
+
+proc boundingBox()   where this.isRectangular()
+
+ +
+
+proc low
+

Returns the lowest index represented by a rectangular domain.

+
+ +
+
+proc low  where this.isAssociative()
+
+ +
+
+proc high
+

Returns the highest index represented by a rectangular domain.

+
+ +
+
+proc high  where this.isAssociative()
+
+ +
+
+proc lowBound
+

Returns the domain’s ‘pure’ low bound. For example, given the +domain {1..10 by -2}, .lowBound would return 1, whereas +.low would return 2 since it’s the lowest index represented +by the domain. This routine is only supported on rectangular +domains.

+
+ +
+
+proc highBound
+

Returns the domain’s ‘pure’ high bound. For example, given the +domain {1..10 by 2}, .highBound would return 10, +whereas .high would return 9 since it’s the highest index +represented by the domain. This routine is only supported on +rectangular domains.

+
+ +
+
+proc first
+

Returns the first index in this domain.

+
+ +
+
+proc last
+

Returns the last index in this domain.

+
+ +
+
+proc chpl_checkEltType(type eltType)
+
+ +
+
+proc chpl_checkNegativeStride()
+
+ +
+
+proc buildArray(type eltType, param initElts: bool)
+
+ +
+
+proc tryCreateArray(type eltType) throws
+
+

Warning

+

tryCreateArray() is subject to change in the future.

+
+

Invoking this method will attempt to create and return an array +declared over the domain instance. If there is not enough memory +to satisfy the allocation, an error will be thrown, allowing +the program to continue if handled, as opposed to halting and +thus stopping program execution.

+

This method will be most reliable in configurations that use a +fixed heap (e.g., when using CHPL_GASNET_SEGMENT=large), but +can be called in all configurations. In the case of a dynamic +heap, it is possible that overcommit will cause the array +allocation to succeed, even if there is not enough physical +memory to satisfy the allocation, which will then fail with a bus +error when attempting to access the array.

+

This method can be called on all domains that implement a +‘doiTryCreateArray’ method.

+

Throws an ArrayOomError when out of memory allocating elements.

+
+ +
+
+proc tryCreateArray(type eltType, initExpr: ?t) throws  where isSubtype(t, _iteratorRecord) || isCoercible(t, eltType)
+
+

Warning

+

tryCreateArray() is subject to change in the future.

+
+
+ +
+
+proc tryCreateArray(type eltType, initExpr: [?dom] ?arrayEltType) throws  where this.rank == dom.rank && isCoercible(arrayEltType, eltType)
+
+

Warning

+

tryCreateArray() is subject to change in the future.

+
+
+ +
+
+proc buildArrayWith(type eltType, data: _ddata(eltType), allocSize: int)
+
+ +
+
+record unsafeAssignManager : contextManager
+

An instance of this type is a context manager that can be used in +manage statements to resize arrays of non-default-initializable +element types after resizing their underlying domain.

+

Using an instance of this type in a manage statement will cause a +domain assignment to occur before executing the statement body. The +left-hand-side of the assignment is the receiver domain that had +unsafeAssign() called on it, while the right-hand-side is the +dom formal of the same call.

+

If the assignment adds new indices to the assigned domain, then +corresponding elements are added to arrays declared over it. +If an array’s element type is non-default-initializable, then any +newly added elements remain uninitialized.

+

The initialize() method can be used within the manage statement +body to initialize new elements of non-default-initializable arrays +declared over the assigned domain.

+

The new elements of default-initializable arrays over the assigned +domain will be default-initialized. They can be set to desired +values as usual, for example using an assignment operator.

+
+
+var _lhsInstance
+
+ +
+
+var _lhsPid : int
+
+ +
+
+var _rhsInstance
+
+ +
+
+var _rhsPid : int
+
+ +
+
+var _oldLhsDomainCopy : domain(?)
+
+ +
+
+param _checks : bool
+
+ +
+
+var _isActiveManager : bool
+
+ +
+
+iter _arraysOverLhsDom()
+
+ +
+
+proc postinit()
+
+ +
+
+proc checks param
+
+ +

Returns true if this manager has runtime safety checks enabled.

+
+
+proc type isClassReferenceNil(const ref x)
+
+ +
+
+proc isClassReferenceNil(const ref x)
+
+ +
+
+proc _checkThatArrayShapeIsSupported(arr) param
+
+ +
+
+proc _checkThatIndexMatchesArrayShape(arr, idx) param
+
+ +
+
+proc _isBaseArrClassElementNil(baseArr: BaseArr, idx)
+
+ +
+
+proc isElementInitialized( arr: [?d],  idx)
+
+ +

Returns true if the value at a given index in an array has +been initialized.

+
+
+proc _checkIfAllElementsAreInitialized(baseArr)
+
+ +
+
+proc ref _ensureNoLongerManagingThis()
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc _isArrayOwnedByLhsDomain(arr)
+
+ +
+
+proc _moveInitializeElement(ref arr, idx, in value)
+
+ +
+
+proc _checkNoChecksWhenNonDefaultInitializableEltType(arr)
+
+ +
+
+proc initialize(ref arr: [?d],  idx, in value: arr.eltType)
+
+ +

Initializes a newly added array element at an index with a new value.

+

If checks is true and the array element at idx has already +been initialized, this method will halt. If checks is false, +then calling this method on an already initialized element will +result in undefined behavior.

+

It is an error if idx is not a valid index in arr.

+
+
+proc ref enterContext() ref
+
+ +
+
+proc ref exitContext(in err: owned(Error?)) throws
+
+ +
+
+iter newIndices()
+
+ +

Iterates over any new indices that will be added to this domain as a +result of unsafe assignment.

+
+ +
+
+proc ref unsafeAssign(const ref dom: domain, param checks: bool = false)
+

Returns an instance of unsafeAssignManager.

+

The returned context manager can be used in a manage statement to +assign the indices of dom into the receiver domain. Within the body +of the manage statement, the manager can initialize elements of +non-default-initializable arrays declared over the receiver domain.

+

If checks is true, this method will guarantee that:

+
+
    +
  • Newly added elements of any non-default-initializable arrays +declared over the receiver domain have been initialized by the +end of the manage statement

  • +
  • Newly added elements are only initialized once

  • +
+
+

These guarantees hold only for initialization done through calls to +the initialize() method on the context manager. Performing +any other operation on a newly added array element causes undefined +behavior until after initialize() has been called.

+

For example:

+
var D = {0..0};
+var A: [D] shared C = [new shared C(0)];
+manage D.unsafeAssign({0..1}, checks=true) as mgr {
+  // 'D' has a new index '1', so 'A' has a new element at '1',
+  // which we need to initialize:
+  mgr.initialize(A, 1, new shared C(1));
+}
+
+
+
+

Note

+

Checks are not currently supported for arrays of +non-default-initializable element types other than arrays of +non-nilable classes.

+
+
+
Arguments:
+
    +
  • dom – The domain to assign to the receiver

  • +
  • checks – If this manager should provide runtime safety checks

  • +
+
+
Returns:
+

A unsafeAssignManager for use in manage statements

+
+
+
+ +
+
+proc ref clear()   where this.isRectangular()
+

Removes all indices from this domain, leaving it empty.

+
+ +
+
+proc ref clear()
+

Removes all indices from this domain, leaving it empty.

+
+ +
+
+proc ref remove(idx)
+

Removes index idx from this domain.

+
+ +
+
+proc ref add(in idx)
+

Adds index idx to this domain. This method is also available +as the += operator. +Returns the number of indices that were added.

+

The domain must be irregular.

+
+ +
+
+proc ref bulkAdd(inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale)   where this.isSparse() && _value.rank == 1
+
+

Warning

+

bulkAdd() is subject to change in the future.

+
+
+ +
+
+proc ref bulkAddNoPreserveInds(ref inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale)   where this.isSparse() && _value.rank == 1
+
+

Warning

+

bulkAddNoPreserveInds() is subject to change in the future.

+
+
+ +
+
+proc createIndexBuffer(size: int)
+
+

Warning

+

createIndexBuffer() is subject to change in the future.

+
+

Creates an index buffer which can be used for faster index addition.

+

For example, instead of:

+
+
var spsDom: sparse subdomain(parentDom);
+for i in someIndexIterator() do
+  spsDom += i;
+
+
+
+

You can use SparseIndexBuffer for better performance:

+
+
var spsDom: sparse subdomain(parentDom);
+var idxBuf = spsDom.createIndexBuffer(size=N);
+for i in someIndexIterator() do
+  idxBuf.add(i);
+idxBuf.commit();
+
+
+
+

The above snippet will create a buffer of size N indices, and will +automatically commit indices to the sparse domain as the buffer fills up. +Indices are also committed when the buffer goes out of scope.

+
+
Arguments:
+

size : int – Size of the buffer in number of indices.

+
+
+
+ +
+
+proc ref bulkAdd(inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale)   where this.isSparse() && _value.rank > 1
+
+

Warning

+

bulkAdd() is subject to change in the future.

+
+

Adds indices in inds to this domain in bulk.

+

For sparse domains, an operation equivalent to this method is available +with the += operator, where the right-hand-side is an array. However, +in that case, default values will be used for the flags dataSorted and +isUnique. This method is available because in +some cases, expensive operations can be avoided by setting those flags. +To do so, bulkAdd must be called explicitly (instead of +=).

+
+

Note

+

Right now, this method and the corresponding += operator are +only available for sparse domains. In the future, we expect that +these methods will be available for all irregular domains.

+
+
+

Note

+

nilLocale is a sentinel value to denote that the locale where this +addition should occur is unknown. We expect this to change in the +future.

+
+
+

Note

+

This method may make a copy of inds if the data is not sorted to +preserve the indices used. If the data is already sorted, it is +possible to avoid this extra copy by using bulkAddNoPreserveInds, +which does not copy the indices and may modify inds in place.

+
+
+
Arguments:
+
    +
  • inds – Indices to be added. inds must be an array of +rank*idxType, except for 1-D domains, where it must be +an array of idxType.

  • +
  • dataSorted : booltrue if data in inds is sorted.

  • +
  • isUnique : booltrue if data in inds has no duplicates.

  • +
  • addOn : locale – The locale where the indices should be added. Default value +is nil which indicates that locale is unknown or there +are more than one.

  • +
+
+
Returns:
+

Number of indices added to the domain

+
+
Return type:
+

int

+
+
+
+ +
+
+proc ref bulkAddNoPreserveInds(ref inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale)   where this.isSparse() && _value.rank > 1
+
+

Warning

+

bulkAddNoPreserveInds() is subject to change in the future.

+
+

Adds indices in inds to this domain in bulk.

+

This is nearly identical to bulkAdd. bulkAdd may +make a copy of inds if the data is unsorted, whereas this method will +modify inds in place.

+
+

Note

+

Right now, this method is only available for sparse domains. +In the future, we expect that this method will be available for all +irregular domains.

+
+
+

Note

+

nilLocale is a sentinel value to denote that the locale where this +addition should occur is unknown. We expect this to change in the +future.

+
+
+
Arguments:
+
    +
  • inds – Indices to be added. inds must be an array of +rank*idxType, except for 1-D domains, where it must be +an array of idxType.

  • +
  • dataSorted : booltrue if data in inds is sorted.

  • +
  • isUnique : booltrue if data in inds has no duplicates.

  • +
  • addOn : locale – The locale where the indices should be added. Default value +is nil which indicates that locale is unknown or there +are more than one.

  • +
+
+
Returns:
+

Number of indices added to the domain

+
+
Return type:
+

int

+
+
+
+ +
+
+proc bulkAdd(args ...)
+
+ +
+
+proc bulkAddNoPreserveInds(args ...)
+
+ +
+
+proc ref requestCapacity(capacity)
+

Requests space for a particular number of values in an +domain.

+

Currently only applies to associative domains.

+
+ +
+
+proc contains(const idx: rank*_value.idxType)
+
+ +
+
+proc contains(const idx: _value.idxType ...rank)
+

Returns true if this domain contains idx. Otherwise returns false. +For sparse domains, only indices with a value are considered +to be contained in the domain.

+
+ +
+
+proc contains(other: domain)
+

Returns true if this domain contains all the indices in the domain +other.

+
+ +
+
+proc indexOrder(i)
+
+ +
+
+proc orderToIndex(order: int)   where this.isRectangular() && isNumericType(this.idxType)
+
+

Warning

+

domain.orderToIndex() is unstable and its behavior may change in the future

+
+

Returns the ith index in the domain counting from 0. +For example, {2..10 by 2}.orderToIndex(2) would return 6.

+

The order of a multidimensional domain follows its serial iterator. +For example, {1..3, 1..2}.orderToIndex(3) would return (2, 2).

+
+

Note

+

Right now, this method supports only dense rectangular domains with +numeric indices

+
+
+
Arguments:
+

order – Order for which the corresponding index in the domain +has to be found.

+
+
Returns:
+

Domain index for a given order in the domain.

+
+
+
+ +
+
+proc orderToIndex(order)
+
+ +
+
+proc checkOrderBounds(order: int)
+
+ +
+
+proc position(i)
+
+ +
+
+proc expand(off: rank*integral)   where !this.isRectangular()
+
+ +
+
+proc expand(off: integral ...rank)
+
+

Warning

+

domain.expand() is unstable and its behavior may change in the future

+
+
+ +
+
+proc expand(off: rank*integral)
+
+

Warning

+

domain.expand() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the current domain expanded by +off(d) in dimension d if off(d) is positive or +contracted by off(d) in dimension d if off(d) +is negative.

+

See ChapelRange.range.expand for further information about what +it means to expand a range.

+
+ +
+
+proc expand(off: integral)   where rank > 1
+
+

Warning

+

domain.expand() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the current domain expanded by +off in all dimensions if off is positive or contracted +by off in all dimensions if off is negative.

+

See ChapelRange.range.expand for further information about what +it means to expand a range.

+
+ +
+
+proc exterior(off: rank*integral)   where !this.isRectangular()
+
+ +
+
+proc exterior(off: integral ...rank)
+
+

Warning

+

domain.exterior() is unstable and its behavior may change in the future

+
+
+ +
+
+proc exterior(off: rank*integral)
+
+

Warning

+

domain.exterior() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the exterior portion of the +current domain with off(d) indices for each dimension d. +If off(d) is negative, compute the exterior from the low +bound of the dimension; if positive, compute the exterior +from the high bound.

+

See ChapelRange.range.exterior for further information about what +it means to compute the exterior of a range.

+
+ +
+
+proc exterior(off: integral)   where rank != 1
+
+

Warning

+

domain.exterior() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the exterior portion of the +current domain with off indices for each dimension. +If off is negative, compute the exterior from the low +bound of the dimension; if positive, compute the exterior +from the high bound.

+

See ChapelRange.range.exterior for further information about what +it means to compute the exterior of a range.

+
+ +
+
+proc interior(off: rank*integral)   where !this.isRectangular()
+
+ +
+
+proc interior(off: integral ...rank)
+
+

Warning

+

domain.interior() is unstable and its behavior may change in the future

+
+
+ +
+
+proc interior(off: rank*integral)
+
+

Warning

+

domain.interior() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the interior portion of the +current domain with off(d) indices for each dimension +d. If off(d) is negative, compute the interior from +the low bound of the dimension; if positive, compute the +interior from the high bound.

+

See ChapelRange.range.interior for further information about what +it means to compute the exterior of a range.

+
+ +
+
+proc interior(off: integral)   where rank != 1
+
+

Warning

+

domain.interior() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the interior portion of the +current domain with off indices for each dimension. +If off is negative, compute the interior from the low +bound of the dimension; if positive, compute the interior +from the high bound.

+

See ChapelRange.range.interior for further information about what +it means to compute the exterior of a range.

+
+ +
+
+proc translate(off: rank*integral)   where !this.isRectangular()
+
+ +
+
+proc translate(off: integral ...rank)
+
+

Warning

+

domain.translate() is unstable and its behavior may change in the future

+
+
+ +
+
+proc translate(off: rank*integral)
+
+

Warning

+

domain.translate() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the current domain translated by +off(d) in each dimension d.

+

See ChapelRange.range.translate for further information about +what it means to translate a range.

+
+ +
+
+proc translate(off: integral)   where rank != 1
+
+

Warning

+

domain.translate() is unstable and its behavior may change in the future

+
+

Returns a new domain that is the current domain translated by +off in each dimension.

+

See ChapelRange.range.translate() for further information about +what it means to translate a range.

+
+ +
+
+proc chpl__unTranslate(off: integral ...rank)
+
+ +
+
+proc chpl__unTranslate(off: rank*chpl_integralIdxType)
+
+ +
+
+proc ref setIndices(x)
+
+ +
+
+proc getIndices()
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+proc ref deserialize(reader, ref deserializer) throws
+
+ +
+
+proc type deserializeFrom(reader, ref deserializer) throws
+
+ +
+
+proc localSlice(r ...rank)   where chpl__isTupleOfRanges(r) && _value.isDefaultRectangular()
+
+ +
+
+proc localSlice(r ...rank)   where chpl__isTupleOfRanges(r) && !_value.isDefaultRectangular()
+

Returns a local view of the sub-domain (slice) defined by the provided +range(s), halting if the slice contains elements that are not local.

+
+ +
+
+proc localSlice(d: domain)
+

Returns a local view of the sub-domain (slice) defined by the provided +domain, halting if the slice contains elements that are not local.

+
+ +
+
+iter sorted(comparator: ?t = chpl_defaultComparator())
+

Yields the domain indices in sorted order.

+
+ +
+
+proc displayRepresentation()
+
+ +
+
+proc defaultSparseDist
+
+ +
+
+proc hasSingleLocalSubdomain() param
+
+

Warning

+

‘hasSingleLocalSubdomain’ on domains is unstable and may change in the future

+
+

Returns true if the local subdomain can be represented as a single +domain. Otherwise returns false.

+
+ +
+
+proc localSubdomain(loc: locale = here)
+

Returns the subdomain that is local to loc.

+
+
Arguments:
+

loc : locale – indicates the locale for which the query should take +place (defaults to here)

+
+
+
+ +
+
+iter localSubdomains(loc: locale = here)
+
+

Warning

+

‘localSubdomains’ on domains is unstable and may change in the future

+
+

Yields the subdomains that are local to loc.

+
+
Arguments:
+

loc : locale – indicates the locale for which the query should take +place (defaults to here)

+
+
+
+ +
+
+proc supportsAutoLocalAccess() param
+
+ +
+
+proc supportsOffsetAutoLocalAccess() param
+
+ +
+
+proc autoLocalAccessOffsetCheck(offsets)
+
+ +
+
+proc iteratorYieldsLocalElements() param
+
+ +
+
+proc tryCast(type t: domain)   where chpl__isRectangularDomType(t) && this.isRectangular() && this.chpl_domainTryCastIsSafe(t)
+

Casts a rectangular domain to a new rectangular domain type. +Throws an IllegalArgumentError when the original bounds and/or stride(s) +do not fit in the new idxType or when the original stride(s) +are not legal for the new strides parameter.

+
+ +
+
+proc tryCast(type t: domain) throws
+
+ +
+
+proc chpl_domainTryCastHelper(type t: _domain) throws
+
+ +
+
+proc chpl_domainTryCastIsSafe(type t: domain) param
+
+ +
+
+operator :(d: _domain, type t: _domain)   where chpl__isRectangularDomType(t) && d.isRectangular() && d.chpl_domainCastIsSafe(t)
+

Casts a rectangular domain to a new rectangular domain type. +The overload below throws when the original bounds and/or stride +do not fit in the new type or ‘strides’. +TODO: should we allow ‘t’ to be generic?

+
+ +
+
+operator :(d: _domain, type t: domain) throws
+
+ +
+
+proc chpl_domainCastHelper(type t: _domain) throws
+
+ +
+
+proc chpl_domainCastIsSafe(type t: domain) param
+
+ +
+
+operator :(val: _domain, type t: string)
+
+ +
+
+proc isRectangular() param
+

Returns true if this domain is a rectangular. +Otherwise returns false.

+
+ +
+
+proc isIrregular() param
+

Returns true if d is an irregular domain; e.g. is not rectangular. +Otherwise returns false.

+
+ +
+
+proc isAssociative() param
+

Returns true if d is an associative domain. +Otherwise returns false.

+
+ +
+
+proc isSparse() param
+

Returns true if d is a sparse domain. Otherwise returns false.

+
+ +
+ +
+
+proc makeRectangularDomain(low: ?t1, high: ?t2, param inclusive: bool = true)   where chpl_isValidRangeIdxType(t1) && chpl_isValidRangeIdxType(t2)
+
+

Warning

+

makeRectangularDomain() is subject to change in the future.

+
+

Creates a rectangular domain with bounds defined by the scalar values low +and high. If inclusive is true, the domain includes the high value. +Otherwise, the domain excludes the high value.

+
+ +
+
+proc makeRectangularDomain(low: ?t1, high: ?t2, param inclusive: bool = true)   where isTuple(low) && isTuple(high) && isHomogeneousTuple(low) && isHomogeneousTuple(high) && low.size == high.size && (isCoercible(low(0).type, high(0).type) || isCoercible(high(0).type, low(0).type))
+
+

Warning

+

makeRectangularDomain() is subject to change in the future.

+
+

Creates a multidimensional rectangular domain with bounds defined by the +pairwise elements of low and high. If inclusive is true, the domain +includes the high values. Otherwise, the domain excludes the high +values. For example, makeRectangularDomain((1, 2), (10,11)) is +equivalent to {1..10, 2..11}.

+
+ +
+
+proc makeRectangularDomain(low: ?t1, high: ?t2, param inclusive: bool = true)   where isTuple(low) != isTuple(high)
+
+

Warning

+

makeRectangularDomain() is subject to change in the future.

+
+

Creates a rectangular domain with bounds defined by one tuple and one +scalar value. The scalar argument is used in each dimension of the domain, +while the ‘n’-th tuple element is used to define the ‘n’-th dimension of +the domain. If inclusive is true, the domain includes the high value. +Otherwise, the domain excludes the high value. For example, +makeRectangularDomain((1, 2), 10) is equivalent to {1..10, 2..10} +and makeRectangularDomain(1, (10, 11), inclusive=false) is equivalent +to {1..<10, 1..<11}.

+
+ +
+
+proc makeRectangularDomain(low: ?t1, high: ?t2, param inclusive: bool = true)   where isTuple(low) && isTuple(high)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelGpuSupport.html b/docs/internal/modules/internal/ChapelGpuSupport.html new file mode 100644 index 000000000..3fd1abfba --- /dev/null +++ b/docs/internal/modules/internal/ChapelGpuSupport.html @@ -0,0 +1,193 @@ + + + + + + + ChapelGpuSupport — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelGpuSupport

+

Usage

+
use ChapelGpuSupport;
+
+
+

or

+
import ChapelGpuSupport;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelHashing.html b/docs/internal/modules/internal/ChapelHashing.html new file mode 100644 index 000000000..05f808b7e --- /dev/null +++ b/docs/internal/modules/internal/ChapelHashing.html @@ -0,0 +1,278 @@ + + + + + + + ChapelHashing — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelHashing

+

Usage

+
use ChapelHashing;
+
+
+

or

+
import ChapelHashing;
+
+
+
+
+proc chpl__defaultHashWrapperInner(x) : uint
+
+ +
+
+proc chpl__defaultHashWrapper(x) : int
+
+ +
+
+proc _gen_key(i: uint) : uint
+
+ +
+
+proc _gen_key(i: int) : uint
+
+ +
+
+proc chpl__defaultHashCombine(a: uint, b: uint, fieldnum: int) : uint
+
+ +
+
+proc bool.hash() : uint
+
+ +
+
+proc int.hash() : uint
+
+ +
+
+proc uint.hash() : uint
+
+ +
+
+proc enum.hash() : uint
+
+ +
+
+proc real.hash() : uint
+
+ +
+
+proc complex.hash() : uint
+
+ +
+
+proc imag.hash() : uint
+
+ +
+
+proc chpl_taskID_t.hash() : uint
+
+ +
+
+proc _array.hash() : uint
+
+ +
+
+proc proc(borrowed(RootClass?)).hash() : uint
+
+ +
+
+proc locale.hash() : uint
+
+ +
+
+proc range.hash() : uint
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelHashtable.html b/docs/internal/modules/internal/ChapelHashtable.html new file mode 100644 index 000000000..f75b033ab --- /dev/null +++ b/docs/internal/modules/internal/ChapelHashtable.html @@ -0,0 +1,433 @@ + + + + + + + ChapelHashtable — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelHashtable

+

Usage

+
use ChapelHashtable;
+
+
+

or

+
import ChapelHashtable;
+
+
+
+
+enum chpl__hash_status { empty = 0, full, deleted }
+
+
+enum constant empty = 0
+
+ +
+
+enum constant full
+
+ +
+
+enum constant deleted
+
+ +
+ +
+
+record chpl_TableEntry
+
+
+var status : chpl__hash_status = chpl__hash_status.empty
+
+ +
+
+var key
+
+ +
+
+var val
+
+ +
+
+proc isFull()
+
+ +
+ +
+
+iter _allSlots(size: int)
+
+ +
+
+class chpl__rehashHelpers
+
+
+proc startRehash(newSize: int)
+
+ +
+
+proc moveElementDuringRehash(oldSlot: int, newSlot: int)
+
+ +
+
+proc finishRehash(oldSize: int)
+
+ +
+ +
+
+record chpl__hashtable
+
+
+type keyType
+
+ +
+
+type valType
+
+ +
+
+var tableNumFullSlots : int
+
+ +
+
+var tableNumDeletedSlots : int
+
+ +
+
+var tableSize : int
+
+ +
+
+var table : _ddata(chpl_TableEntry(keyType, valType))
+
+ +
+
+var rehashHelpers : owned(chpl__rehashHelpers?)
+
+ +
+
+var postponeResize : bool
+
+ +
+
+const resizeThreshold : real
+
+ +
+
+const startingSize : int
+
+ +
+
+proc init(type keyType, type valType, resizeThreshold = defaultHashTableResizeThreshold, initialCapacity = 16, in rehashHelpers: owned(chpl__rehashHelpers?) = nil)
+
+ +
+
+proc deinit()
+
+ +
+
+proc isSlotFull(slot: int) : bool
+
+ +
+
+iter allSlots()
+
+ +
+
+iter allSlots(param tag: iterKind)   where tag == iterKind.standalone
+
+ +
+
+iter allSlots(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter allSlots(followThis, param tag: iterKind)   where tag == iterKind.follower
+
+ +
+
+proc keysMatch(key1: ?t, key2: t)
+
+ +
+
+proc _findSlot(key: keyType) : (bool, int)
+
+ +
+
+iter _lookForSlots(key: keyType, numSlots = tableSize)
+
+ +
+
+proc ref findAvailableSlot(key: keyType) : (bool, int)
+
+ +
+
+proc ref fillSlot(ref tableEntry: chpl_TableEntry(keyType, valType), in key: keyType, in val: valType)
+
+ +
+
+proc ref fillSlot(slotNum: int, in key: keyType, in val: valType)
+
+ +
+
+proc findFullSlot(key: keyType) : (bool, int)
+
+ +
+
+proc ref clearSlot(ref tableEntry: chpl_TableEntry(keyType, valType), out key: keyType, out val: valType)
+
+ +
+
+proc ref clearSlot(slotNum: int, out key: keyType, out val: valType)
+
+ +
+
+proc ref maybeShrinkAfterRemove()
+
+ +
+
+proc _findPowerOf2(numKeys: int)
+
+ +
+
+proc allocateData(size: int, type tableEltType)
+
+ +
+
+proc allocateTable(size: int)
+
+ +
+
+proc ref rehash(newSize: int)
+
+ +
+
+proc ref requestCapacity(numKeys: int)
+
+ +
+
+proc ref resize(grow: bool)
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelIOSerialize.html b/docs/internal/modules/internal/ChapelIOSerialize.html new file mode 100644 index 000000000..dd32a4e0f --- /dev/null +++ b/docs/internal/modules/internal/ChapelIOSerialize.html @@ -0,0 +1,193 @@ + + + + + + + ChapelIOSerialize — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelIOSerialize

+

Usage

+
use ChapelIOSerialize;
+
+
+

or

+
import ChapelIOSerialize;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelIOStringifyHelper.html b/docs/internal/modules/internal/ChapelIOStringifyHelper.html new file mode 100644 index 000000000..316967858 --- /dev/null +++ b/docs/internal/modules/internal/ChapelIOStringifyHelper.html @@ -0,0 +1,205 @@ + + + + + + + ChapelIOStringifyHelper — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelIOStringifyHelper

+

Usage

+
use ChapelIOStringifyHelper;
+
+
+

or

+
import ChapelIOStringifyHelper;
+
+
+

Pull out the portions of stringify that don’t rely on IO so that they can +be called without IO and not cause circular dependencies.

+
+
+proc _can_stringify_direct(t) param : bool
+
+ +
+
+proc stringify_simple(const args ...?k) : string
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelIteratorSupport.html b/docs/internal/modules/internal/ChapelIteratorSupport.html new file mode 100644 index 000000000..6a2ad34b4 --- /dev/null +++ b/docs/internal/modules/internal/ChapelIteratorSupport.html @@ -0,0 +1,545 @@ + + + + + + + ChapelIteratorSupport — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelIteratorSupport

+

Usage

+
use ChapelIteratorSupport;
+
+
+

or

+
import ChapelIteratorSupport;
+
+
+

Data parallel constructs (such as forall loops) are implicitly +vectorizable. If the --vectorize compiler flag is thrown the Chapel +compiler will emit vectorization hints to the backend compiler, though the +effects will vary based on the target compiler.

+

In order to allow users to explicitly request vectorization, this prototype +vectorizing iterator is being provided. Loops that invoke this iterator will +be marked with vectorization hints, provided the --vectorize flag is +thrown.

+

This iterator is currently available for all Chapel programs and does not +require a use statement to make it available. In future releases it will +be moved to a standard module and will likely require a use statement to +make it available.

+
+
+proc iteratorIndex(ic: _iteratorClass)
+
+ +
+
+proc iteratorIndex(t: _tuple)
+
+ +
+
+proc iteratorIndexType(x) type
+
+ +
+
+proc iteratorIndexTypeZip(xs ...) type
+
+ +
+
+proc iteratorToArrayElementType(type t: _iteratorRecord) type
+
+ +
+
+proc thunkToReturnType(type t: _thunkRecord) type
+
+ +
+
+proc chpl_elemTypeForReducingIterables(x) type
+
+ +
+
+proc chpl_buildStandInRTT(type domType: domain) type
+
+ +
+
+proc chpl_buildStandInRTT(type arrType: []) type
+
+ +
+
+proc chpl_buildStandInRTT(type irType: _iteratorRecord) type
+
+ +
+
+proc chpl_buildStandInRTT(type nonRTtype) type
+
+ +
+
+proc chpl_buildStandInRTT(domInst) type  where isSubtype(domInst.type, unmanaged(DefaultRectangularDom))
+
+ +
+
+proc chpl_buildStandInRTT(domInst) type
+
+ +
+
+iter chpl_trivialLeader()
+
+ +
+
+proc chpl_computeIteratorShape(arg: [])
+
+ +
+
+proc chpl_computeIteratorShape(arg: domain)
+
+ +
+
+proc chpl_computeIteratorShape(arg: range(?))
+
+ +
+
+proc chpl_computeIteratorShape(arg: _iteratorRecord)
+
+ +
+
+proc chpl_computeIteratorShape(arg)
+
+ +
+
+proc chpl_iteratorHasShape(ir: _iteratorRecord) param
+
+ +
+
+proc chpl_iteratorHasDomainShape(ir: _iteratorRecord) param
+
+ +
+
+proc chpl_iteratorHasRangeShape(ir: _iteratorRecord) param
+
+ +
+
+proc chpl_iteratorShapeStaticTypeOrNothing(type ir: _iteratorRecord) type
+
+ +
+
+proc chpl_iteratorFromForExpr(ir: _iteratorRecord) param
+
+ +
+
+proc chpl_iteratorFromForExpr(arg) param
+
+ +
+
+proc chpl_iteratorFromForeachExpr(ir: _iteratorRecord) param
+
+ +
+
+proc chpl_iteratorFromForeachExpr(arg) param
+
+ +
+
+operator =(ref ic: _iteratorRecord, xs)
+
+ +
+
+operator =(ref ic: _iteratorRecord, x: iteratorIndexType(ic))
+
+ +
+
+proc _getIterator(const ref x)
+
+ +
+
+proc _getIterator(type t)
+
+ +
+
+proc _getIteratorZip(x)
+
+ +
+
+proc _getIteratorZip(type t)
+
+ +
+
+proc _getIteratorZip(x: _tuple)
+
+ +
+
+proc _getIteratorZip(type t: _tuple)
+
+ +
+
+proc _freeIterator(ic: _iteratorClass)
+
+ +
+
+proc _freeIterator(x: _tuple)
+
+ +
+
+proc _toLeader(const ir: _iteratorRecord)   where __primitive("has leader", ir)
+
+ +
+
+proc _toLeader(const x)   where !isSubtype(x.type, _iteratorRecord) && __primitive("has leader", x.these())
+
+ +
+
+proc _toLeaderZip(x)   where !isTuple(x) && Reflection.canResolve("_toLeader", x)
+
+ +
+
+proc _toLeaderZip(x: _tuple)   where Reflection.canResolve("_toLeader", x(0))
+
+ +
+
+proc _toStandalone(iterator: _iteratorClass)
+
+ +
+
+proc _toStandalone(ir: _iteratorRecord)
+
+ +
+
+proc _toStandalone(x)
+
+ +
+
+proc _toLeader(ir: _iteratorRecord, args ...)
+
+ +
+
+proc _toLeader(x, args ...)
+
+ +
+
+proc _toLeaderZip(x, args ...)
+
+ +
+
+proc _toLeaderZip(x: _tuple, args ...)
+
+ +
+
+proc _toStandalone(iterator: _iteratorClass, args ...)
+
+ +
+
+proc _toStandalone(ir: _iteratorRecord, args ...)
+
+ +
+
+proc _toStandalone(x, args ...)
+
+ +
+
+proc chpl__canHaveFastFollowers(x) param
+
+ +
+
+proc chpl__canLeadFastFollowers(x) param
+
+ +
+
+proc chpl__staticFastFollowCheck(x) param
+
+ +
+
+proc chpl__staticFastFollowCheck(x, lead) param
+
+ +
+
+proc chpl__dynamicFastFollowCheck(x)
+
+ +
+
+proc chpl__dynamicFastFollowCheck(x, lead)
+
+ +
+
+proc _toFollower(iterator: _iteratorClass, leaderIndex)
+
+ +
+
+proc _toFollower(ir: _iteratorRecord, leaderIndex)
+
+ +
+
+proc _toFollower(const ref x, leaderIndex)
+
+ +
+
+proc _toFollowerZip(x, leaderIndex)
+
+ +
+
+proc _toFollowerZip(x: _tuple, leaderIndex)
+
+ +
+
+proc _toFollowerZipInternal(x: _tuple, leaderIndex, param dim: int)
+
+ +
+
+proc _toFastFollower(iterator: _iteratorClass, leaderIndex, fast: bool)
+
+ +
+
+proc _toFastFollower(ir: _iteratorRecord, leaderIndex, fast: bool)
+
+ +
+
+proc _toFastFollower(x, leaderIndex)
+
+ +
+
+proc singleValIter(iterables: _tuple) param
+
+ +
+
+proc singleRefIter(iterables: _tuple) param
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelLocale.html b/docs/internal/modules/internal/ChapelLocale.html new file mode 100644 index 000000000..4b72ea406 --- /dev/null +++ b/docs/internal/modules/internal/ChapelLocale.html @@ -0,0 +1,832 @@ + + + + + + + ChapelLocale — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelLocale

+

Usage

+
use ChapelLocale;
+
+
+

or

+
import ChapelLocale;
+
+
+
+
+type chpl_nodeID_t = int(32)
+
+ +
+
+type chpl_sublocID_t = int(32)
+
+ +
+
+const c_sublocid_none : chpl_sublocID_t
+
+ +
+
+const c_sublocid_any : chpl_sublocID_t
+
+ +
+
+const c_sublocid_all : chpl_sublocID_t
+
+ +
+
+proc chpl_isActualSublocID(subloc: chpl_sublocID_t)
+
+ +
+
+enum localeKind { regular, any, nilLocale, dummy, default }
+

regular: Has a concrete BaseLocale instance +any: Placeholder to represent the notion of “anywhere” +nilLocale: The _instance is set to nil. Used during setup. Also, as a

+
+

sentinel value in locale tree operations

+
+

dummy: Used during initialization for here before it is properly setup +default: Used to store the default locale instance. Initially set to nil,

+
+

then “fixed” by LocalesArray to Locales[0]

+
+
+
+enum constant regular
+
+ +
+
+enum constant any
+
+ +
+
+enum constant nilLocale
+
+ +
+
+enum constant dummy
+
+ +
+
+enum constant default
+
+ +
+ +
+
+const nilLocale = new locale(localeKind.nilLocale)
+
+ +
+
+var defaultLocale = new locale(localeKind.default)
+
+ +
+
+var dummyLocale = new locale(localeKind.dummy)
+
+ +
+
+record _locale
+
+
+var _instance : unmanaged(BaseLocale?)
+
+ +
+
+proc _value
+
+ +
+
+proc init()
+
+ +
+
+proc init(_instance: BaseLocale)
+
+ +
+
+proc init(param kind)
+
+ +
+
+proc init=(other: locale)
+
+ +
+
+proc deinit()
+
+ +
+
+proc localeid
+
+ +
+
+proc chpl_id()
+
+ +
+
+proc chpl_localeid()
+
+ +
+
+proc chpl_name()
+
+ +
+
+proc _getChildCount()
+
+ +
+ +
+
+proc here
+
+ +
+
+proc locale.hostname : string
+

Get the hostname of this locale.

+
+
Returns:
+

the hostname of the compute node associated with the locale

+
+
Return type:
+

string

+
+
+
+ +
+
+proc locale.name : string
+
+

Get the name of this locale.

+

In general, this method returns the same string as locale.hostname; +however, it can differ when the program is executed in an oversubscribed manner.

+
+
+

Note

+

The locale’s id (from locale.id) will be appended to the hostname +when launching in an oversubscribed manner with CHPL_COMM=gasnet and one of +the following configurations:

+
    +
  • CHPL_COMM_SUBSTRATE=udp & GASNET_SPAWNFN=L

  • +
  • CHPL_COMM_SUBSTRATE=smp

  • +
+

More information about these environment variables can be found here: readme-multilocale

+
+
+
Returns:
+

the name of this locale

+
+
Return type:
+

string

+
+
+
+ +
+
+proc locale.id : int
+

Get the unique integer identifier for this locale.

+
+
Returns:
+

index of this locale in the range 0..numLocales-1

+
+
Return type:
+

int

+
+
+
+ +
+
+proc locale.maxTaskPar : int
+

Get the maximum task concurrency that one can expect to +achieve on this locale.

+
+
Returns:
+

the maximum number of tasks that can run in parallel +on this locale

+
+
Return type:
+

int

+
+
+

Note that the value is an estimate by the runtime tasking layer. +Typically it is the number of physical processor cores available +to the program. Executing a data-parallel construct with more +tasks this that is unlikely to improve performance.

+
+ +
+
+proc locale.numPUs(logical: bool = false, accessible: bool = true) : int
+
+

Warning

+

‘locale.numPUs’ is unstable

+
+

Get the number of processing units available on this locale.

+

A processing unit or PU is an instance of the processor +architecture, basically the thing that executes instructions. +locale.numPUs tells how many of these are present on this +locale. It can count either physical PUs (commonly known as +cores) or hardware threads such as hyperthreads and the like. +It can also either take into account any OS limits on which PUs +the program has access to or do its best to ignore such limits. +By default it returns the number of accessible physical cores.

+
+
Arguments:
+
    +
  • logical : bool – Count logical PUs (hyperthreads and the like), +or physical ones (cores)? Defaults to false, +for cores.

  • +
  • accessible : bool – Count only PUs that can be reached, or all of +them? Defaults to true, for accessible PUs.

  • +
+
+
Returns:
+

number of PUs

+
+
Return type:
+

int

+
+
+

Note that there are several things that can cause the OS to limit +the processor resources available to a Chapel program. On plain +Linux systems using the taskset(1) command will do it. On +Cray systems the CHPL_LAUNCHER_CORES_PER_LOCALE environment +variable may do it, indirectly via the system job launcher. +Also on Cray systems, using a system job launcher (aprun or +slurm) to run a Chapel program manually may do it, as can +running programs within Cray batch jobs that have been set up +with limited processor resources.

+
+ +
+
+proc locale.runningTasks() : int
+

Get the number of tasks running on this locale.

+

This method is intended to guide task creation during a parallel +section. If the number of running tasks is greater than or equal +to the locale’s maximum task parallelism (queried via locale.maxTaskPar), +then creating more tasks is unlikely to decrease walltime.

+
+
Returns:
+

the number of tasks that have begun executing, but have not yet finished

+
+
Return type:
+

int

+
+
+
+ +
+
+operator locale.=(ref l1: locale, const ref l2: locale)
+
+ +
+
+class BaseLocale : writeSerializable
+

locale is the abstract class from which the various +implementations inherit. It specifies the required interface +and implements part of it, but requires the rest to be provided +by the corresponding concrete classes.

+
+
+proc init()
+
+ +
+
+proc init(parent: locale)
+
+ +
+
+const parent : locale = nilLocale
+
+ +
+
+var nPUsLogAcc : int
+
+ +
+
+var nPUsLogAll : int
+
+ +
+
+var nPUsPhysAcc : int
+
+ +
+
+var nPUsPhysAll : int
+
+ +
+
+proc numPUs(logical: bool = false, accessible: bool = true)
+
+ +
+
+var maxTaskPar : int
+
+ +
+
+proc id : int
+
+ +
+
+proc localeid : chpl_localeID_t
+
+ +
+
+proc hostname : string
+
+ +
+
+override proc serialize(writer, ref serializer) throws
+
+ +
+
+proc name
+
+ +
+
+var runningTaskCounter : chpl__processorAtomicType(int)
+
+ +
+
+proc runningTaskCntSet(val: int)
+
+ +
+
+proc runningTaskCntAdd(val: int)
+
+ +
+
+proc runningTaskCntSub(val: int)
+
+ +
+
+proc runningTaskCnt()
+
+ +
+
+proc chpl_id() : int
+
+ +
+
+proc chpl_localeid() : chpl_localeID_t
+
+ +
+
+proc chpl_name() : string
+
+ +
+
+proc _getChildCount() : int
+
+ +
+
+proc addChild(loc: locale)
+
+ +
+
+proc _getChild(idx: int) : locale
+
+ +
+
+proc gpus const ref
+
+ +
+
+proc gpusImpl() const ref
+
+ +
+
+proc isGpu() : bool
+
+ +
+ +
+
+class DummyLocale : BaseLocale
+

This class is used during initialization and is returned when +‘here’ is used before the locale hierarchy is initialized. This is due to +the fact that “here” is used for memory and task control in setting up the +architecture itself. DummyLocale provides system-default tasking and +memory management.

+
+
+proc init()
+
+ +
+
+override proc chpl_id() : int
+
+ +
+
+override proc chpl_localeid() : chpl_localeID_t
+
+ +
+
+override proc chpl_name() : string
+
+ +
+
+override proc _getChildCount() : int
+
+ +
+
+override proc _getChild(idx: int) : locale
+
+ +
+
+override proc addChild(loc: locale)
+
+ +
+ +
+
+proc chpl_getSingletonLocaleArray(arg: locale) const ref
+
+ +
+
+class AbstractLocaleModel : BaseLocale
+
+
+var chpl_singletonThisLocaleArray : [0..0] locale
+
+ +
+
+proc init(parent_loc: locale)
+
+ +
+
+proc init()
+
+ +
+ +
+
+var rootLocale = nilLocale
+
+ +
+
+config param replicateRootLocale = true
+
+ +
+
+var origRootLocale = nilLocale
+
+ +
+
+class AbstractRootLocale : BaseLocale
+
+
+proc init()
+
+ +
+
+proc init(parent_loc: locale)
+
+ +
+
+proc getDefaultLocaleSpace() const ref : chpl_emptyLocaleSpace.type
+
+ +
+
+proc getDefaultLocaleArray() const ref : chpl_emptyLocales.type
+
+ +
+
+proc localeIDtoLocale(id: chpl_localeID_t) : locale
+
+ +
+
+iter chpl_initOnLocales()
+
+ +
+
+iter chpl_initOnLocales(param tag: iterKind)   where tag == iterKind.standalone
+
+ +
+ +
+
+proc chpl_init_rootLocale()
+
+ +
+
+proc chpl_rootLocaleInitPrivate(locIdx)
+
+ +
+
+proc chpl_defaultLocaleInitPrivate()
+
+ +
+
+proc chpl_singletonCurrentLocaleInitPrivateSublocs(arg: locale)
+
+ +
+
+proc chpl_singletonCurrentLocaleInitPrivate(locIdx)
+
+ +
+
+proc chpl_task_getRequestedSubloc() : chpl_sublocID_t
+
+ +
+
+export proc chpl_getLocaleID(ref localeID: chpl_localeID_t)
+
+ +
+
+proc here_id
+
+ +
+
+proc chpl_localeID_to_locale(id: chpl_localeID_t) : locale
+
+ +
+
+export proc chpl_taskRunningCntInc()
+
+ +
+
+export proc chpl_taskRunningCntDec()
+
+ +
+
+export proc chpl_taskRunningCntReset()
+
+ +
+
+proc deinit()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelLocks.html b/docs/internal/modules/internal/ChapelLocks.html new file mode 100644 index 000000000..1865fa917 --- /dev/null +++ b/docs/internal/modules/internal/ChapelLocks.html @@ -0,0 +1,230 @@ + + + + + + + ChapelLocks — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelLocks

+

Usage

+
use ChapelLocks;
+
+
+

or

+
import ChapelLocks;
+
+
+
    +
  • Collection of mutexes/locks.

  • +
+
+
+record chpl_LocalSpinlock
+
    +
  • Local processor atomic spinlock. Intended for situations with minimal

  • +
  • contention or very short critical sections.

  • +
+
+
+var l : chpl__processorAtomicType(bool)
+
+ +
+
+proc init()
+
+ +
+
+proc init=(other: chpl_LocalSpinlock)
+
+ +
+
+proc ref lock()
+
+ +
+
+proc ref unlock()
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelNumLocales.html b/docs/internal/modules/internal/ChapelNumLocales.html new file mode 100644 index 000000000..38d445f52 --- /dev/null +++ b/docs/internal/modules/internal/ChapelNumLocales.html @@ -0,0 +1,203 @@ + + + + + + + ChapelNumLocales — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelNumLocales

+

Usage

+
use ChapelNumLocales;
+
+
+

or

+
import ChapelNumLocales;
+
+
+
+
+proc chpl_comm_default_num_locales() : int
+
+ +
+
+config const numLocales = chpl_comm_default_num_locales()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelPrivatization.html b/docs/internal/modules/internal/ChapelPrivatization.html new file mode 100644 index 000000000..dbd1e4044 --- /dev/null +++ b/docs/internal/modules/internal/ChapelPrivatization.html @@ -0,0 +1,232 @@ + + + + + + + ChapelPrivatization — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelPrivatization

+

Usage

+
use ChapelPrivatization;
+
+
+

or

+
import ChapelPrivatization;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+record chpl_privateObject_t
+
+
+var obj : c_ptr(void)
+
+ +
+ +
+
+var chpl_privateObjects : c_ptr(chpl_privateObject_t)
+
+ +
+
+proc chpl_getPrivatizedCopy(type objectType, objectPid: int) : objectType
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelRange.html b/docs/internal/modules/internal/ChapelRange.html new file mode 100644 index 000000000..73e85eae1 --- /dev/null +++ b/docs/internal/modules/internal/ChapelRange.html @@ -0,0 +1,2068 @@ + + + + + + + ChapelRange — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelRange

+

Usage

+
use ChapelRange;
+
+
+

or

+
import ChapelRange;
+
+
+
+
+config param debugChapelRange = false
+
+ +
+
+config param useOptimizedRangeIterators = true
+
+ +
+
+config param newSliceRule = true
+

This flag, when set to true, used to switch to using the new slicing rule +and to turn off the deprecation warning for using the old rule. +Now the new rule is always enabled regardless of this flag’s value. +When slicing with a range with a negative stride, the old rule +preserves the direction of the original range or domain/array dimension +whereas the new rule reverses such direction.

+
+ +
+
+config param newRangeLiteralType = false
+

Compile with -snewRangeLiteralType to switch to using the new rule +for determining the idxType of a range literal with param integral bounds +and to turn off the deprecation warning for using the old rule.

+

The new rule defines such idxType to be the type produced by adding +the two bounds. I.e.,``(low..high).idxType`` is (low+high).type +when low and high are integral params.

+
+ +
+
+enum boundKind { both, low, high, neither }
+
+
+enum constant both
+
+ +
+
+enum constant low
+
+ +
+
+enum constant high
+
+ +
+
+enum constant neither
+
+ +
+ +
+
+enum strideKind { one, negOne, positive, negative, any }
+
+
+enum constant one
+
+ +
+
+enum constant negOne
+
+ +
+
+enum constant positive
+
+ +
+
+enum constant negative
+
+ +
+
+enum constant any
+
+ +
+ +
+
+record _range
+
+
+type idxType = int
+
+ +
+
+param bounds : boundKind = boundKind.both
+
+ +
+
+param strides : strideKind = strideKind.one
+
+ +
+
+var _low : chpl__idxTypeToIntIdxType(idxType)
+
+ +
+
+var _high : chpl__idxTypeToIntIdxType(idxType)
+
+ +
+
+var _stride : if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType)
+
+ +
+
+var _alignment : if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType)
+
+ +
+ +
+
+proc range.strType type
+
+

Warning

+

range.strType is unstable and may be removed or renamed

+
+

Returns the type of the range’s stride.

+
+ +
+
+proc range.chpl__promotionType() type
+
+ +
+
+proc range.chpl_integralIdxType type
+

The idxType as represented by an integer type. When +idxType is an enum type, this evaluates to int. +Otherwise, it evaluates to idxType.

+

This is no-doc’d because we currently are hoping it can +be more of an implementation detail than a user-facing +feature.

+
+ +
+
+proc range.init(type idxType, low: idxType, high: idxType)
+
+ +
+
+proc range.init(low: ?t)
+
+ +
+
+proc range.init(high: ?t)
+
+ +
+
+proc range.init()
+
+ +
+
+proc range.init(type idxType, param bounds: boundKind, param strides: strideKind)
+
+ +
+
+proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, param internal: bool)
+
+ +
+
+proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, _alignment, _aligned, param normalizeAlignment = true)
+
+ +
+
+proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, alignmentValue)
+
+ +
+
+proc range.init=(other: range(?i, ?b, ?s))
+
+ +
+
+proc range.displayRepresentation(msg: string = "") : void
+
+ +
+
+proc chpl_isValidRangeIdxType(type t) param
+
+ +
+
+proc chpl_build_bounded_range(param low: integral, param high: integral)
+
+ +
+
+proc chpl_build_bounded_range(low: int(8), high: int(8))
+
+ +
+
+proc chpl_build_bounded_range(low: int(16), high: int(16))
+
+ +
+
+proc chpl_build_bounded_range(low: int(32), high: int(32))
+
+ +
+
+proc chpl_build_bounded_range(low: int(64), high: int(64))
+
+ +
+
+proc chpl_build_bounded_range(low: uint(8), high: uint(8))
+
+ +
+
+proc chpl_build_bounded_range(low: uint(16), high: uint(16))
+
+ +
+
+proc chpl_build_bounded_range(low: uint(32), high: uint(32))
+
+ +
+
+proc chpl_build_bounded_range(low: uint(64), high: uint(64))
+
+ +
+
+proc chpl_build_bounded_range(low: enum, high: enum)
+
+ +
+
+proc chpl_build_bounded_range(low: bool, high: bool)
+
+ +
+
+proc chpl_build_bounded_range(low, high)   where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type))
+
+ +
+
+proc chpl__nudgeLowBound(low)
+
+ +
+
+proc chpl__nudgeLowBound(param low) param
+
+ +
+
+proc chpl__nudgeHighBound(high)
+
+ +
+
+proc chpl__nudgeHighBound(param high) param
+
+ +
+
+proc chpl_build_low_bounded_range(low: integral)
+
+ +
+
+proc chpl_build_low_bounded_range(low: enum)
+
+ +
+
+proc chpl_build_low_bounded_range(low: bool)
+
+ +
+
+proc chpl_build_low_bounded_range(low)   where !chpl_isValidRangeIdxType(low.type)
+
+ +
+
+proc chpl_build_high_bounded_range(high: integral)
+
+ +
+
+proc chpl_build_high_bounded_range(high: enum)
+
+ +
+
+proc chpl_build_high_bounded_range(high: bool)
+
+ +
+
+proc chpl_build_high_bounded_range(high)   where !chpl_isValidRangeIdxType(high.type)
+
+ +
+
+proc chpl_build_unbounded_range()
+
+ +
+
+proc type range.createWithSingleElement(elm: idxType)
+
+ +
+
+proc chpl_compute_low_param_loop_bound(param low: integral, param high: integral) param
+
+ +
+
+proc chpl_compute_high_param_loop_bound(param low: integral, param high: integral) param
+
+ +
+
+proc chpl_compute_low_param_loop_bound(param low: enum, param high: low.type) param
+
+ +
+
+proc chpl_compute_high_param_loop_bound(param low: enum, param high: low.type) param
+
+ +
+
+proc chpl_compute_low_param_loop_bound(param low: bool, param high: bool) param
+
+ +
+
+proc chpl_compute_high_param_loop_bound(param low: bool, param high: bool) param
+
+ +
+
+proc chpl_compute_low_param_loop_bound(param low, param high) param  where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type))
+
+ +
+
+proc chpl_compute_low_param_loop_bound(low, high)
+
+ +
+
+proc chpl_compute_count_param_loop(param count: integral) param
+
+ +
+
+proc chpl_compute_count_param_loop(count)
+
+ +
+
+proc chpl_low_bound_count_for_param_loop(param high: integral, param count: integral) param
+
+ +
+
+proc chpl_low_bound_count_for_param_loop(high, count)
+
+ +
+
+proc chpl_high_bound_count_for_param_loop(param low: integral, param count: integral) param
+
+ +
+
+proc chpl_high_bound_count_for_param_loop(low, count)
+
+ +
+
+proc chpl_bounded_count_for_param_loop_low(param low: integral, param high: integral, param count: integral) param
+
+ +
+
+proc chpl_bounded_count_for_param_loop_low(low, high, count)
+
+ +
+
+proc chpl_bounded_count_for_param_loop_high(param low: integral, param high: integral, param count: integral) param
+
+ +
+
+proc chpl_bounded_count_for_param_loop_high(low, high, count)
+
+ +
+
+proc range.stride  where !hasParamStride()
+

Returns the range’s stride.

+
+ +
+
+proc range.stride param  where hasParamStride()
+
+ +
+
+proc range.alignment  where !hasParamAlignment()
+

Returns the range’s alignment.

+
+ +
+
+proc range.alignment param  where hasParamAlignment()
+
+ +
+
+proc range.isAligned()   where !hasParamAligned()
+

Returns true if the range’s alignment is unambiguous, +false otherwise.

+
+ +
+
+proc range.isAligned() param  where hasParamAligned()
+
+ +
+
+proc range.hasParamStride() param
+
+ +
+
+proc range.hasParamAlignmentField() param
+
+ +
+
+proc range.hasParamAlignment() param
+
+ +
+
+proc range.hasParamAligned() param
+
+ +
+
+proc range.hasParamStrideAltvalAld() param
+
+ +
+
+proc type range.hasParamStrideAltvalAld() param
+
+ +
+
+proc range.hasLowBound() param
+

Returns true if this range’s low bound is not -\(\infty\), +and false otherwise.

+
+ +
+
+proc range.lowBound : idxType
+

Returns the range’s low bound. If the range does not have a low +bound (e.g., ..10), the behavior is undefined. See also +range.hasLowBound.

+
+ +
+
+proc range.hasUnitStride() param
+
+ +
+
+proc range.hasPosNegUnitStride() param
+
+ +
+
+proc range.hasPositiveStride() param  where strides.hasSign()
+
+ +
+
+proc range.hasPositiveStride()   where strides.isAny()
+
+ +
+
+proc range.hasNegativeStride() param  where strides.hasSign()
+
+ +
+
+proc range.hasNegativeStride()   where strides.isAny()
+
+ +
+
+proc param strideKind.isOne() param
+
+ +
+
+proc param strideKind.isNegOne() param
+
+ +
+
+proc param strideKind.isPosNegOne() param
+
+ +
+
+proc param strideKind.isPositive() param
+
+ +
+
+proc param strideKind.isNegative() param
+
+ +
+
+proc param strideKind.hasSign() param
+
+ +
+
+proc param strideKind.isAny() param
+
+ +
+
+proc param strideKind.defaultStride() param
+
+ +
+
+proc chpl_strideProduct(param s1: strideKind, param s2: strideKind) param
+
+ +
+
+proc chpl_strideProduct(r1: range(?), r2: range(?)) param
+
+ +
+
+proc chpl_strideProduct(r1: range(?), param stride2: integral) param
+
+ +
+
+proc chpl_strideUnion(param s1: strideKind, param s2: strideKind) param
+
+ +
+
+proc chpl_strideUnion(args: _tuple) param
+
+ +
+
+proc chpl_strideUnion(arg, args ...) param
+
+ +
+
+proc chpl_strideUnion(arg) param : strideKind
+
+ +
+
+proc chpl_strideUnionRC(args: _tuple) param
+
+ +
+
+proc chpl_strideUnionRC(arg, args ...) param
+
+ +
+
+proc chpl_strideUnionRC(arg) param
+
+ +
+
+proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind) param
+
+ +
+
+proc chpl_assignStrideIsSafe(lhs: range(?), rhs: range(?)) param
+
+ +
+
+proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride) param  where chpl_assignStrideIsSafe(lhs, rhs) || lhs == strideKind.positive && isUint(rhsStride)
+
+ +
+
+proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride)
+
+ +
+
+proc chpl_assignStrideIsUnsafe(param lhs: strideKind, param rhs: strideKind) param
+
+ +
+
+proc ref range.chpl_setFields(low, high, stride)
+
+ +
+
+proc ref range.chpl_setFields(low, high)
+
+ +
+
+proc range.low : idxType
+

Returns the range’s aligned low bound. If this bound is +undefined (e.g., ..10 by -2), the behavior is undefined.

+

Example:

+
var r = 1..10 by -2;
+writeln(r.low);
+
+
+

produces the output

+
2
+
+
+
+ +
+
+proc range.alignedLowAsInt
+
+ +
+
+proc range.chpl_alignedLowAsIntForIter
+
+ +
+
+proc range.hasHighBound() param
+

Returns true if this range’s high bound is not \(\infty\), +and false otherwise.

+
+ +
+
+proc range.highBound : idxType
+

Returns the range’s high bound. If the range does not have a high +bound (e.g., 1..), the behavior is undefined. See also +range.hasHighBound.

+
+ +
+
+proc range.high : idxType
+

Returns the range’s aligned high bound. If the aligned high bound is +undefined (e.g., 1.. by 2), the behavior is undefined.

+

Example:

+
var r = 1..10 by 2;
+writeln(r.high);
+
+
+

produces the output

+
9
+
+
+
+ +
+
+proc range.alignedHighAsInt
+
+ +
+
+proc range.chpl_alignedHighAsIntForIter
+
+ +
+
+proc range.chpl_isNaturallyAligned()   where !hasPosNegUnitStride() && bounds != boundKind.neither
+
+ +
+
+proc range.chpl_isNaturallyAligned() param  where hasPosNegUnitStride() || bounds == boundKind.neither
+
+ +
+
+proc range.isEmpty()
+

Returns true if the sequence represented by the range is +empty and false otherwise. If the range is ambiguous, the +behavior is undefined.

+
+ +
+
+proc range.isEmpty()   where isFiniteIdxType(idxType) && this.bounds != boundKind.both
+
+

Warning

+

range.isEmpty() is unstable for unbounded ranged over an enum or bool

+
+
+ +
+
+proc range.size : int
+

Returns the number of values represented by this range as an integer.

+

If the size exceeds max(int), this procedure will halt when +bounds checks are on and have undefined behavior when they are not.

+

If the represented sequence is infinite or undefined, an error is +generated.

+
+ +
+
+proc range.sizeAs(type t: integral) : t
+

Returns the number of elements in this range as the specified +integer type.

+

If the size exceeds the maximal value of that type, this +procedure will halt when bounds checks are on and have undefined +behavior when they are not.

+

If the represented sequence is infinite or undefined, an error is +generated.

+
+ +
+
+proc range.sizeAsHelp(type t: integral, al = this.alignedLowAsInt, ah = this.alignedHighAsInt) : t
+
+ +
+
+proc range.chpl_sizeAsForIter(type t: integral) : t
+
+ +
+
+proc range.hasFirst()
+

Returns true if the range has a first index, false otherwise.

+
+ +
+
+proc range.hasFirstForIter()
+
+ +
+
+proc range.hasFirst() param  where hasFirstLastAreParam(this)
+
+ +
+
+proc range.hasFirstForIter() param  where hasFirstLastAreParam(this)
+
+ +
+
+proc range.first
+

Returns the first value in the sequence the range represents. If +the range has no first index, the behavior is undefined. See +also range.hasFirst.

+
+ +
+
+proc range.firstAsInt
+
+ +
+
+proc range.chpl_firstAsIntForIter
+
+ +
+
+proc range.hasLast()
+

Returns true if the range has a last index, false otherwise.

+
+ +
+
+proc range.hasLastForIter()
+
+ +
+
+proc range.hasLast() param  where hasFirstLastAreParam(this)
+
+ +
+
+proc range.hasLastForIter() param  where hasFirstLastAreParam(this)
+
+ +
+
+proc range.last
+

Returns the last value in the sequence the range represents. If +the range has no last index, the behavior is undefined. See also +range.hasLast.

+
+ +
+
+proc range.lastAsInt
+
+ +
+
+proc range.chpl_lastAsIntForIter
+
+ +
+
+proc chpl_idxTypeSizeChange(type t) param
+
+ +
+
+proc range.contains(ind: idxType)
+

Returns true if the range’s represented sequence contains +ind, false otherwise. It is an error to invoke contains +if the represented sequence is not defined.

+
+ +
+
+proc range.contains(other: range(?))
+

Returns true if the range other is contained within this one, +false otherwise.

+
+ +
+
+operator ==(r1: range(?), r2: range(?)) param  where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType))
+
+ +
+
+operator ==(r1: range(?), r2: range(?)) : bool  where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType)
+
+

Warning

+

== between unbounded and bounded ranges is unstable and its behavior may change in the future

+
+
+ +
+
+operator ==(r1: range(?), r2: range(?)) : bool  where r1.bounds == r2.bounds
+
+ +
+
+operator !=(r1: range(?), r2: range(?))
+
+ +
+
+operator !=(r1: range(?), r2: range(?)) : bool  where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType)
+
+

Warning

+

!= between unbounded and bounded ranges is unstable and its behavior may change in the future

+
+
+ +
+
+operator !=(r1: range(?), r2: range(?)) param  where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType))
+
+ +
+
+operator <(r1: range(?), r2: range(?))   where r1.bounds != boundKind.both || r2.bounds != boundKind.both
+
+ +
+
+operator >(r1: range(?), r2: range(?))   where r1.bounds != boundKind.both || r2.bounds != boundKind.both
+
+ +
+
+operator <=(r1: range(?), r2: range(?))   where r1.bounds != boundKind.both || r2.bounds != boundKind.both
+
+ +
+
+operator >=(r1: range(?), r2: range(?))   where r1.bounds != boundKind.both || r2.bounds != boundKind.both
+
+ +
+
+proc chpl_ident(r1: range(?), r2: range(?))   where r1.idxType == r2.idxType && r1.bounds == r2.bounds && r1.strides == r2.strides
+
+ +
+
+proc chpl_ident(r1: range(?), r2: range(?)) param
+
+ +
+
+proc range.boundingBox()
+
+ +
+
+proc range.tryCast(type t: range(?))   where chpl_tryCastIsSafe(this, t)
+

Casts a range to a new range type. Throws an IllegalArgumentError when +the original bounds and/or stride do not fit in the new idxType +or when the original stride is not legal for the new strides parameter.

+
+ +
+
+proc range.tryCast(type t: range(?)) throws  where !chpl_tryCastIsSafe(this, t)
+
+ +
+
+operator :(r: range(?), type t: range(?))   where chpl_castIsSafe(r, t)
+

Cast a range to a new range type. The overload below throws when +the original bounds and/or stride do not fit in the new type or ‘strides’. +TODO: should we allow ‘t’ to be generic?

+
+ +
+
+operator :(r: range(?), type t: range(?)) throws  where !chpl_castIsSafe(r, t)
+
+ +
+
+proc chpl_throwingCast(type toType, from) throws
+

cast ‘from’ to ‘to’, throwing an error if it does not fit

+
+ +
+
+proc chpl_throwingCast(type toType, from)   where chpl_idxCastIsSafe(toType, from.type)
+
+ +
+
+proc range.chpl_checkStrides(type toType) : owned(IllegalArgumentError?)
+

Returns ‘nil’ if ‘this.stride’ fits into ‘toType.strides’, +otherwise returns an IllegalArgumentError.

+
+ +
+
+proc chpl_tryCastIsSafe(r: range(?), type t: range(?)) param
+
+ +
+
+proc chpl_castIsSafe(r: range(?), type t: range(?)) param
+
+ +
+
+proc chpl_idxCastIsSafe(type to, type from) param
+
+ +
+
+proc chpl_idxCastThrows(type to, type from) param
+
+ +
+
+proc range.chpl_boundsCheck(other: range(?e, ?b, ?s))   where b == boundKind.neither
+
+ +
+
+proc range.chpl_boundsCheck(other: range(?e, ?b, ?s))
+
+ +
+
+proc range.chpl_boundsCheck(other: idxType)
+
+ +
+
+proc ref range.alignLow()
+

private

+
+ +
+
+proc ref range.alignHigh()
+

private

+
+ +
+
+proc range.indexOrder(ind: idxType)
+
+

Warning

+

range.indexOrder() is unstable and its behavior may change in the future

+
+

Returns an integer representing the zero-based ordinal value of +ind within the range’s sequence of values if it is a member +of the sequence. Otherwise, returns -1. It is an error to +invoke indexOrder if the represented sequence is not defined +or the range does not have a first index.

+

The following calls show the order of index 4 in each of the given ranges:

+
+
+
(0..10).indexOrder(4) == 4
+(1..10).indexOrder(4) == 3
+(3..5).indexOrder(4) == 1
+(0..10 by 2).indexOrder(4) == 2
+(3..5 by 2).indexOrder(4) == -1
+
+
+
+ +
+
+proc range.orderToIndex(ord: integral) : idxType
+
+

Warning

+

range.orderToIndex() is unstable and its behavior may change in the future

+
+

Returns the zero-based ord-th element of this range’s represented +sequence. It is an error to invoke orderToIndex if the range is not +defined, or if ord is negative or greater than the range’s size. +The orderToIndex procedure is the reverse of indexOrder.

+

Example:

+
0..10.orderToIndex(4) == 4
+1..10.orderToIndex(3) == 4
+3..5.orderToIndex(1)  == 4
+0..10 by 2.orderToIndex(2) == 4
+
+
+
+ +
+
+proc range.translate(offset: integral)
+
+

Warning

+

range.translate() is unstable and its behavior may change in the future

+
+

Returns a range with elements shifted from this range by offset. +Formally, the range’s low bound, high bound, and alignment values +will be shifted while the stride value will be preserved. If the +range’s alignment is ambiguous, the behavior is undefined.

+

Example:

+
0..9.translate(1) == 1..10
+0..9.translate(2) == 2..11
+0..9.translate(-1) == -1..8
+0..9.translate(-2) == -2..7
+
+
+
+ +
+
+proc range.translate(i)
+
+ +
+
+proc range.translate(offset: integral)   where chpl__singleValIdxType(idxType)
+
+ +
+
+proc range.expand(offset: integral)   where bounds != boundKind.both
+
+ +
+
+proc range.expand(offset: integral)
+
+

Warning

+

range.expand() is unstable and its behavior may change in the future

+
+

Returns a range expanded by offset elements from each end. If +offset is negative, the range will be contracted. The stride +and alignment of the original range are preserved.

+

Example:

+
0..9.expand(1)  == -1..10
+0..9.expand(2)  == -2..11
+0..9.expand(-1) == 1..8
+0..9.expand(-2) == 2..7
+
+
+

Formally, for a range represented by the tuple \((l,h,s,a)\), +the result is \((l-i,h+i,s,a)\). If the operand range is +ambiguously aligned, then so is the resulting range.

+
+ +
+
+proc range.expand(offset: integral)   where chpl__singleValIdxType(idxType)
+
+ +
+
+proc range.interior(offset: integral)   where bounds != boundKind.both
+
+ +
+
+proc range.interior(offset: integral)
+
+

Warning

+

range.interior() is unstable and its behavior may change in the future

+
+

Returns a range with offset elements from the interior portion of this +range. If offset is positive, take elements from the high end, and if +offset is negative, take elements from the low end.

+

Example:

+
0..9.interior(1)  == 9..9
+0..9.interior(2)  == 8..9
+0..9.interior(-1) == 0..0
+0..9.interior(-2) == 0..1
+
+
+

Formally, given a range denoted by the tuple \((l,h,s,a)\),

+
    +
  • if \(i < 0\), the result is \((l,l-(i-1),s,a)\),

  • +
  • if \(i > 0\), the result is \((h-(i-1),h,s,a)\), and

  • +
  • if \(i = 0\), the result is \((l,h,s,a)\).

  • +
+

This differs from the behavior of the count operator, in that +interior() preserves the alignment, and it uses the low and +high bounds rather than first and last to establish the +bounds of the resulting range. If the operand range is +ambiguously aligned, then so is the resulting range.

+
+ +
+
+proc range.exterior(offset: integral)   where bounds != boundKind.both
+
+ +
+
+proc range.exterior(offset: integral)
+
+

Warning

+

range.exterior() is unstable and its behavior may change in the future

+
+

Returns a range with offset elements from the exterior portion of this +range. If offset is positive, take elements from the high end, and if +offset is negative, take elements from the low end.

+

Example:

+
0..9.exterior(1)  = 10..10
+0..9.exterior(2)  = 10..11
+0..9.exterior(-1) = -1..-1
+0..9.exterior(-2) = -2..-1
+
+
+

Formally, given a range denoted by the tuple \((l,h,s,a)\),

+
    +
  • if \(i < 0\), the result is \((l+i,l-1,s,a)\),

  • +
  • if \(i > 0\), the result is \((h+1,h+i,s,a)\), and

  • +
  • if \(i = 0\), the result is \((l,h,s,a)\).

  • +
+

If the operand range is ambiguously aligned, then so is the resulting +range.

+
+ +
+
+proc range.exterior(offset: integral)   where chpl__singleValIdxType(idxType)
+
+ +
+
+operator =(ref r1: range(?), r2: range(?))
+
+ +
+
+operator +(r1: range(?), r2: range(?))
+
+ +
+
+operator -(r1: range(?), r2: range(?))
+
+ +
+
+operator +(r: range(?e, ?b, ?s), i: integral)
+
+

Warning

+

‘+’ on ranges is unstable and may change in the future

+
+
+ +
+
+operator +=(ref r: range(?e, ?b, ?s), offset: integral)
+
+

Warning

+

‘+=’ on ranges is unstable and may change in the future

+
+
+ +
+
+operator +(i: integral, r: range(?e, ?b, ?s))
+
+

Warning

+

‘+’ on ranges is unstable and may change in the future

+
+
+ +
+
+operator -(r: range(?e, ?b, ?s), i: integral)
+
+

Warning

+

‘-’ on ranges is unstable and may change in the future

+
+
+ +
+
+operator -=(ref r: range(?e, ?b, ?s), offset: integral)
+
+

Warning

+

‘-=’ on ranges is unstable and may change in the future

+
+
+ +
+
+proc chpl_check_step_integral(step)
+
+ +
+
+proc chpl_need_to_check_step(step, type strType) param
+
+ +
+
+proc chpl_range_check_stride(step, type idxType)
+
+ +
+
+proc chpl_range_check_stride(param step, type idxType)
+
+ +
+
+proc chpl_by_help(r: range(?i, ?b, ?s), step, param newStrides)
+
+ +
+
+operator by(r: range(?), step)
+
+ +
+
+operator by(r: range(?), param step)
+
+ +
+
+operator by(r, step)
+
+ +
+
+operator align(r: range(?i, ?b, ?s), algn: i)
+
+ +
+
+operator align(r: range(?i, ?b, ?s), algn)
+
+ +
+
+operator align(r, algn)
+
+ +
+
+proc range.offset(in offset: integral)
+
+

Warning

+

range.offset() is unstable and its behavior may change in the future

+
+

Returns a range whose alignment is this range’s first index plus offset. +If the range has no first index, a runtime error is generated.

+
+ +
+
+proc const range.this( other: range(?))
+
+ +
+
+proc chpl_count_help(r: range(?), i)   where r.bounds == boundKind.neither
+
+ +
+
+proc chpl_count_help(r, count: integral)
+
+ +
+
+operator #( r: range(?),  count: bool)
+
+ +
+
+operator #( r: range(?),  count: integral)
+
+ +
+
+operator #( r: range(?i),  count)
+
+ +
+
+operator #( r,  count)
+
+ +
+
+proc chpl_checkIfRangeIterWillOverflow(type idxType, low, high, stride, first = low, last = high, shouldHalt = true)
+
+ +
+
+proc range.checkIfIterWillOverflow(shouldHalt = true)
+
+ +
+
+iter chpl_direct_range_iter(param low: integral, param high: integral)
+
+ +
+
+iter chpl_direct_range_iter(low: int(8), high: int(8))
+
+ +
+
+iter chpl_direct_range_iter(low: int(16), high: int(16))
+
+ +
+
+iter chpl_direct_range_iter(low: int(32), high: int(32))
+
+ +
+
+iter chpl_direct_range_iter(low: int(64), high: int(64))
+
+ +
+
+iter chpl_direct_range_iter(low: uint(8), high: uint(8))
+
+ +
+
+iter chpl_direct_range_iter(low: uint(16), high: uint(16))
+
+ +
+
+iter chpl_direct_range_iter(low: uint(32), high: uint(32))
+
+ +
+
+iter chpl_direct_range_iter(low: uint(64), high: uint(64))
+
+ +
+
+iter chpl_direct_range_iter(low: enum, high: enum)
+
+ +
+
+iter chpl_direct_range_iter(low: bool, high: bool)
+
+ +
+
+iter chpl_direct_range_iter(low, high)   where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type))
+
+ +
+
+iter chpl_direct_strided_range_iter(param low: integral, param high: integral, stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(8), high: int(8), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(16), high: int(16), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(32), high: int(32), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(64), high: int(64), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(8), high: uint(8), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(16), high: uint(16), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(32), high: uint(32), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(64), high: uint(64), stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: enum, high: enum, stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: bool, high: bool, stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(param low: integral, param high: integral, param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(8), high: int(8), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(16), high: int(16), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(32), high: int(32), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(64), high: int(64), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(8), high: uint(8), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(16), high: uint(16), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(32), high: uint(32), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(64), high: uint(64), param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: enum, high: enum, param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: bool, high: bool, param stride: integral)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(8), high: int(8), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(16), high: int(16), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(32), high: int(32), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(64), high: int(64), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(8), high: uint(8), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(16), high: uint(16), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(32), high: uint(32), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(64), high: uint(64), stride: uint(?w2))
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(8), high: int(8), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(16), high: int(16), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(32), high: int(32), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: int(64), high: int(64), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(8), high: uint(8), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(16), high: uint(16), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(32), high: uint(32), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low: uint(64), high: uint(64), stride)
+
+ +
+
+iter chpl_direct_strided_range_iter(low, high, stride)   where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type))
+
+ +
+
+iter chpl_direct_counted_range_iter(low: int(?w), count)
+
+ +
+
+iter chpl_direct_counted_range_iter(low: uint(?w), count)
+
+ +
+
+iter chpl_direct_counted_range_iter(low: enum, count: integral)
+
+ +
+
+iter chpl_direct_counted_range_iter(low: bool, count: integral)
+
+ +
+
+iter chpl_direct_counted_range_iter(low, count)   where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(count.type))
+
+ +
+
+iter chpl_direct_counted_range_iter_helper(low, count)
+
+ +
+
+iter chpl_direct_pos_stride_range_iter(low: ?t, high, stride)
+
+ +
+
+iter chpl_direct_param_stride_range_iter(low: ?t, high, param stride)
+
+ +
+
+iter range.these() : nothing  where !hasLowBoundForIter(this) && !hasHighBoundForIter(this)
+
+ +
+
+iter range.these()   where hasLowBoundForIter(this) && !hasHighBoundForIter(this)
+
+ +
+
+iter range.these()   where !hasLowBoundForIter(this) && hasHighBoundForIter(this)
+
+ +
+
+iter range.these()   where hasLowBoundForIter(this) && hasHighBoundForIter(this) && !hasPosNegUnitStride()
+
+ +
+
+iter range.these()   where hasLowBoundForIter(this) && hasHighBoundForIter(this) && hasPosNegUnitStride()
+
+ +
+
+iter range.generalIterator()
+
+ +
+
+iter range.these(param tag: iterKind)   where tag == iterKind.standalone && !localeModelPartitionsIterationOnSublocales
+
+ +
+
+iter range.these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter range.these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+operator :(x: range(?), type t: string)
+
+ +
+
+proc range.chpl__unTranslate(i)
+
+ +
+
+proc chpl__mod(dividend: integral, modulus: integral)   where numBits(dividend.type) >= numBits(modulus.type)
+
+ +
+
+proc chpl__mod(dividend: integral, modulus: integral)   where numBits(dividend.type) < numBits(modulus.type) && isInt(modulus)
+
+ +
+
+proc chpl__diffMod(minuend: integral, subtrahend: integral, modulus: integral) : minuend.type  where minuend.type == subtrahend.type
+
+ +
+
+proc chpl__diffMod(minuend: integral, subtrahend: integral, modulus: integral)
+
+ +
+
+proc chpl__add(a: ?t, b: t, type resultType)
+
+ +
+
+proc chpl__addRangeStrides(start, stride, count) : start.type
+
+ +
+
+proc chpl__extendedEuclidHelper(u, v)
+
+ +
+
+proc chpl__extendedEuclid(u: int(32), v: int(32))
+
+ +
+
+proc chpl__extendedEuclid(u: int(64), v: int(64))
+
+ +
+
+proc chpl__idxTypeToIntIdxType(type idxType) type
+
+ +
+
+proc range.chpl_intToIdx(i)
+
+ +
+
+proc chpl__intToIdx(type idxType: integral, i: integral)
+
+ +
+
+proc chpl__intToIdx(type idxType: integral, param i: integral) param
+
+ +
+
+proc chpl__intToIdx(type idxType: enum, i: integral)
+
+ +
+
+proc chpl__intToIdx(type idxType: enum, param i: integral) param
+
+ +
+
+proc chpl__intToIdx(type idxType, i: integral)   where isBoolType(idxType)
+
+ +
+
+proc chpl__intToIdx(type idxType, param i: integral) param  where isBoolType(idxType)
+
+ +
+
+proc chpl__intToIdx(type idxType, i: nothing)
+
+ +
+
+proc chpl__idxToInt(i: integral)
+
+ +
+
+proc chpl__idxToInt(param i: integral) param
+
+ +
+
+proc chpl__idxToInt(i: enum)
+
+ +
+
+proc chpl__idxToInt(param i: enum) param
+
+ +
+
+proc chpl__idxToInt(i: bool)
+
+ +
+
+proc chpl__idxToInt(param i: bool) param
+
+ +
+
+proc chpl__singleValIdxType(type t) param
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelReduce.html b/docs/internal/modules/internal/ChapelReduce.html new file mode 100644 index 000000000..2ecab67ef --- /dev/null +++ b/docs/internal/modules/internal/ChapelReduce.html @@ -0,0 +1,811 @@ + + + + + + + ChapelReduce — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelReduce

+

Usage

+
use ChapelReduce;
+
+
+

or

+
import ChapelReduce;
+
+
+
+
+proc chpl__scanStateResTypesMatch(op) param
+
+ +
+
+proc chpl__scanIteratorZip(op, data)
+
+

Warning

+

scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204

+
+
+ +
+
+proc chpl__scanIterator(op, data)
+
+

Warning

+

scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204

+
+
+ +
+
+proc chpl__accumgen(op, d)
+
+ +
+
+proc chpl__reduceCombine(globalOp, localOp)
+
+ +
+
+proc chpl__cleanupLocalOp(globalOp, localOp)
+
+ +
+
+proc chpl_sumTypeIsSame(type eltType) param
+
+ +
+
+proc chpl__sumType(type eltType) type
+
+ +
+
+class ReduceScanOp
+
+
+var l : chpl_LocalSpinlock
+
+ +
+ +
+
+class SumReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value : chpl__sumType(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class ProductReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _prod_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class MaxReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = min(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class MinReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = max(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class minmax : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = (max(eltType), min(eltType))
+
+ +
+
+proc identity
+
+ +
+
+proc accumulateOntoState(ref state, x: eltType)
+
+ +
+
+proc accumulateOntoState(ref state, other: 2*(eltType))
+
+ +
+
+proc accumulate(x: eltType)
+
+ +
+
+proc accumulate(state: 2*(eltType))
+
+ +
+
+proc combine(other: minmax(eltType))
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class LogicalAndReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _land_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class LogicalOrReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _lor_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class BitwiseAndReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _band_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class BitwiseOrReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _bor_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class BitwiseXorReduceScanOp : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _bxor_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+proc _maxloc_id(type eltType)
+
+ +
+
+proc _minloc_id(type eltType)
+
+ +
+
+class maxloc : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _maxloc_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+
+class minloc : ReduceScanOp
+
+
+type eltType
+
+ +
+
+var value = _minloc_id(eltType)
+
+ +
+
+proc identity
+
+ +
+
+proc accumulate(x)
+
+ +
+
+proc accumulateOntoState(ref state, x)
+
+ +
+
+proc combine(x)
+
+ +
+
+proc generate()
+
+ +
+
+proc clone()
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelRemoteVars.html b/docs/internal/modules/internal/ChapelRemoteVars.html new file mode 100644 index 000000000..984c877a3 --- /dev/null +++ b/docs/internal/modules/internal/ChapelRemoteVars.html @@ -0,0 +1,287 @@ + + + + + + + ChapelRemoteVars — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelRemoteVars

+

Usage

+
use ChapelRemoteVars;
+
+
+

or

+
import ChapelRemoteVars;
+
+
+
    +
  • Copyright 2024 Hewlett Packard Enterprise Development LP

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+class _remoteVarContainer
+
+
+var containedValue
+
+ +
+ +
+
+record _remoteVarWrapper
+
+
+type eltType
+
+ +
+
+var tmp : owned(_remoteVarContainer(eltType))
+
+ +
+
+proc init(in tmp: owned(_remoteVarContainer(?eltType)))
+
+ +
+
+proc ref get() ref
+
+ +
+ +
+
+proc __defaultValueForType(type inType)
+
+ +
+
+proc chpl__buildRemoteWrapper(const ref loc)
+
+

Warning

+

remote variables are unstable

+
+
+ +
+
+proc chpl__buildRemoteWrapper(const ref loc, type inType)
+
+

Warning

+

remote variables are unstable

+
+
+ +
+
+proc chpl__buildRemoteWrapper(const ref loc, in tr: _thunkRecord)
+
+

Warning

+

remote variables are unstable

+
+
+ +
+
+proc chpl__buildRemoteWrapper(const ref loc, type inType, in tr: _thunkRecord)
+
+

Warning

+

remote variables are unstable

+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelSerializedBroadcast.html b/docs/internal/modules/internal/ChapelSerializedBroadcast.html new file mode 100644 index 000000000..df64ef9e8 --- /dev/null +++ b/docs/internal/modules/internal/ChapelSerializedBroadcast.html @@ -0,0 +1,213 @@ + + + + + + + ChapelSerializedBroadcast — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelSerializedBroadcast

+

Usage

+
use ChapelSerializedBroadcast;
+
+
+

or

+
import ChapelSerializedBroadcast;
+
+
+
+
+config param chpl__enableSerializedGlobals = true
+
+ +
+
+proc chpl_get_global_serialize_table(idx: int) : c_ptr(void)
+
+ +
+
+proc chpl__broadcastGlobal(ref localeZeroGlobal: ?T, id: int)   where chpl__enableSerializedGlobals
+
+ +
+
+proc chpl__destroyBroadcastedGlobal(ref localeZeroGlobal, id: int)   where chpl__enableSerializedGlobals
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelShortArrayTransfer.html b/docs/internal/modules/internal/ChapelShortArrayTransfer.html new file mode 100644 index 000000000..578b190f7 --- /dev/null +++ b/docs/internal/modules/internal/ChapelShortArrayTransfer.html @@ -0,0 +1,218 @@ + + + + + + + ChapelShortArrayTransfer — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelShortArrayTransfer

+

Usage

+
use ChapelShortArrayTransfer;
+
+
+

or

+
import ChapelShortArrayTransfer;
+
+
+
+
+config param debugShortArrayTransfer = false
+
+ +
+
+config param disableShortArrayTransfer = false
+
+ +
+
+config param shortArrayTransferThreshold = 60
+
+ +
+
+proc chpl__staticCheckShortArrayTransfer(a, b) param
+
+ +
+
+proc chpl__dynamicCheckShortArrayTransfer(a, b)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelStandard.html b/docs/internal/modules/internal/ChapelStandard.html new file mode 100644 index 000000000..b2f505ce8 --- /dev/null +++ b/docs/internal/modules/internal/ChapelStandard.html @@ -0,0 +1,193 @@ + + + + + + + ChapelStandard — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelStandard

+

Usage

+
use ChapelStandard;
+
+
+

or

+
import ChapelStandard;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelStaticVars.html b/docs/internal/modules/internal/ChapelStaticVars.html new file mode 100644 index 000000000..c447413cb --- /dev/null +++ b/docs/internal/modules/internal/ChapelStaticVars.html @@ -0,0 +1,303 @@ + + + + + + + ChapelStaticVars — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelStaticVars

+

Usage

+
use ChapelStaticVars;
+
+
+

or

+
import ChapelStaticVars;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+enum sharingKind { computeOrRetrieve, computePerLocale }
+
+
+enum constant computeOrRetrieve
+
    +
  • +
+

Default distribution mode. The value is computed on whichever +locale first calls the function; other locales remotely access +the value once it’s computed.

+
+ +
+
+enum constant computePerLocale
+
    +
  • +
+

The variable is computed per-locale; the first call to the function +on each locale causes it to compute the static variable.

+
+ +
+ +
+
+class _staticWrapperContainer
+
+
+var value
+
+ +
+ +
+
+record _staticWrapper
+
+
+type valueType
+
+ +
+
+var container : owned(_staticWrapperContainer(valueType)?)
+
+ +
+
+var inited : atomic(int)
+
+ +
+
+proc init(type valueType)
+
+ +
+
+proc ref setValue(in v: valueType)
+
+ +
+
+proc ref getValue() ref : valueType
+
+ +
+
+proc ref callerShouldComputeValue()
+
+ +
+
+proc ref reset()
+
+ +
+ +
+
+proc chpl__functionStaticVariableWrapperType(type valueType) type
+
+ +
+
+proc chpl__executeStaticWrapperCleanupEverywhere(fn: proc () : void )
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelSyncvar.html b/docs/internal/modules/internal/ChapelSyncvar.html new file mode 100644 index 000000000..b589f6278 --- /dev/null +++ b/docs/internal/modules/internal/ChapelSyncvar.html @@ -0,0 +1,1017 @@ + + + + + + + ChapelSyncvar — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelSyncvar

+

Usage

+
use ChapelSyncvar;
+
+
+

or

+
import ChapelSyncvar;
+
+
+
+
+config param useNativeSyncVar = true
+
+ +
+
+proc chpl__readXX(x)
+
+ +
+
+proc chpl__readXX(x)   where isAtomicType(x.type)
+
+ +
+
+record _syncvar : writeSerializable, readDeserializable
+

******************************* | ********************************* +* * +* The record wrapper to implement sync * +* * +********************************* | *******************************

+
+
+type valType
+
+ +
+
+var wrapped : getSyncClassType(valType)
+
+ +
+
+var isOwned : bool = true
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init(type valType, in value: valType)
+
+ +
+
+proc init(const ref other: _syncvar)
+
+ +
+
+proc init=(const ref other: _syncvar(?))
+
+

Warning

+

Initializing a type-inferred variable from a ‘sync’ is deprecated; apply a ‘read??()’ method to the right-hand side

+
+
+ +
+
+proc init=(in other: this.type.valType)
+
+ +
+
+proc deinit()
+
+ +
+
+proc deserialize(reader, ref deserializer) throws
+
+ +
+
+proc type deserializeFrom(reader, ref deserializer) throws
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+ +
+
+proc _syncvar.readFE()
+

Read a full sync variable, leaving it empty.

+
    +
  1. Block until the sync variable is full.

  2. +
  3. Read the value of the sync variable and set the variable to empty.

  4. +
+
+
Returns:
+

The value of the sync variable.

+
+
+
+ +
+
+proc _syncvar.readFF()
+

Read a full sync variable, leaving it full.

+
    +
  1. Block until the sync variable is full.

  2. +
  3. Read the value of the sync variable and leave the variable full.

  4. +
+
+
Returns:
+

The value of the sync variable.

+
+
+
+ +
+
+proc _syncvar.readXX()
+
+

Warning

+

‘readXX’ is unstable

+
+

Read a sync variable regardless of its state, leaving its state unchanged.

+
    +
  1. Without blocking, read the value of the sync variable

  2. +
  3. Leaving the state unchanged, return a value based on the current state:

  4. +
+
+
    +
  • full: return a copy of the stored value.

  • +
  • empty: return either a new default-initialized value of the stored type +or, the last value stored (implementation dependent).

  • +
+
+
+
Returns:
+

The value of the sync variable.

+
+
+
+ +
+
+proc ref _syncvar.writeEF(in val: valType)
+

Write into an empty sync variable, leaving it full.

+
    +
  1. Block until the sync variable is empty.

  2. +
  3. Write the value of the sync variable and leave the variable full.

  4. +
+
+
Arguments:
+

val – New value of the sync variable.

+
+
+
+ +
+
+proc ref _syncvar.writeFF(in val: valType)
+
+

Warning

+

‘writeFF’ is unstable

+
+

Write into a full sync variable, leaving it full.

+
    +
  1. Block until the sync variable is full.

  2. +
  3. Write the value of the sync variable and leave the variable full.

  4. +
+
+
Arguments:
+

val – New value of the sync variable.

+
+
+
+ +
+
+proc ref _syncvar.writeXF(in val: valType)
+
+

Warning

+

‘writeXF’ is unstable

+
+

Write into a sync variable regardless of its state, leaving it full.

+
    +
  1. Do not block.

  2. +
  3. Write the value of the sync variable, leave it’s state full.

  4. +
+
+
Arguments:
+

val – New value of the sync variable.

+
+
+
+ +
+
+proc ref _syncvar.reset()
+
+

Warning

+

‘reset’ is unstable

+
+

Resets the value of this sync variable to the default value of +its type. This method is non-blocking and the state of the sync +variable is set to empty when this method completes.

+
+ +
+
+proc _syncvar.isFull
+
+

Warning

+

‘isFull’ is unstable

+
+

Determine if the sync variable is full without blocking. +Does not alter the state of the sync variable.

+
+
Returns:
+

true if the state of the sync variable is full, false if it’s empty.

+
+
+
+ +
+
+operator =(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

Direct assignment to ‘sync’ variables is deprecated; apply a ‘write??()’ method to modify one

+
+
+ +
+
+operator :(from, type t: _syncvar)   where from.type == t.valType
+
+ +
+
+operator :(from: _syncvar, type toType: _syncvar)
+
+

Warning

+

Casting sync variables is deprecated

+
+
+ +
+
+operator +=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator -=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator *=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator /=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator %=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator **=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator &=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator |=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator ^=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator >>=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+operator <<=(ref lhs: _syncvar(?t), rhs: t)
+
+

Warning

+

‘op=’ assignments to ‘sync’ variables are deprecated; add explicit ‘.read??’/’.write??’ methods to modify one

+
+
+ +
+
+proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _syncvar(?), ref rhs: _syncvar(?))
+
+ +
+
+proc chpl__compilerGeneratedCopySyncSingle(ref sv: _syncvar(?))
+
+ +
+
+proc chpl__initCopy(ref sv: _syncvar(?t), definedConst: bool)
+
+

Warning

+

Initializing a type-inferred variable from a ‘sync’ is deprecated; apply a ‘.read??()’ method to the right-hand side

+
+
+ +
+
+proc chpl__autoCopy(const ref rhs: _syncvar, definedConst: bool)
+
+ +
+
+proc chpl__maybeAutoDestroyed(x: _syncvar(?t)) param
+
+ +
+
+proc chpl__autoDestroy(x: _syncvar(?))
+
+ +
+
+proc chpl__readXX(const ref x: _syncvar(?))
+
+ +
+
+operator <=>(ref lhs: _syncvar, ref rhs)
+
+

Warning

+

Swapping ‘sync’ variables is deprecated; perform the swap manually using explicit ‘.read??’/’.write??’ methods

+
+
+ +
+
+operator <=>(ref lhs, ref rhs: _syncvar)
+
+

Warning

+

Swapping ‘sync’ variables is deprecated; perform the swap manually using explicit ‘.read??’/’.write??’ methods

+
+
+ +
+
+operator <=>(ref lhs: _syncvar, ref rhs: _syncvar)
+
+

Warning

+

Swapping ‘sync’ variables is deprecated; perform the swap manually using explicit ‘.read??’/’.write??’ methods

+
+
+ +
+
+class _synccls
+

******************************* | ********************************* +* * +* Use of a class instance establishes the required identity property. * +* * +********************************* | *******************************

+
+
+type valType
+
+ +
+
+var value : valType
+
+ +
+
+var syncAux : chpl_sync_aux_t
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init(type valType, in value: valType)
+
+ +
+
+proc deinit()
+
+ +
+
+proc readFE()
+
+ +
+
+proc const readFF()
+
+ +
+
+proc const readXX()
+
+ +
+
+proc writeEF(in val: valType)
+
+ +
+
+proc writeFF(in val: valType)
+
+ +
+
+proc writeXF(in val: valType)
+
+ +
+
+proc reset()
+
+ +
+
+proc isFull
+
+ +
+ +
+
+class _qthreads_synccls
+
+
+type valType
+
+ +
+
+var alignedValue : aligned_t
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init(type valType, in value: valType)
+
+ +
+
+proc deinit()
+
+ +
+
+proc readFE()
+
+ +
+
+proc readFF()
+
+ +
+
+proc readXX()
+
+ +
+
+proc writeEF(val: valType)
+
+ +
+
+proc writeFF(val: valType)
+
+ +
+
+proc writeXF(val: valType)
+
+ +
+
+proc reset()
+
+ +
+
+proc isFull
+
+ +
+ +
+
+record _singlevar : writeSerializable, readDeserializable
+

******************************* | ********************************* +* * +* The record wrapper to implement single * +* * +********************************* | *******************************

+
+
+type valType
+
+ +
+
+var wrapped : unmanaged(_singlecls(valType))
+
+ +
+
+var isOwned : bool = true
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init(type valType, in value: valType)
+
+ +
+
+proc init(const ref other: _singlevar)
+
+ +
+
+proc init=(const ref other: _singlevar)
+
+

Warning

+

Initializing a type-inferred variable from a ‘single’ is deprecated; apply a ‘read??()’ method to the right-hand side

+
+
+ +
+
+proc init=(in other: this.type.valType)
+
+ +
+
+proc deinit()
+
+ +
+
+proc deserialize(reader, ref deserializer) throws
+
+ +
+
+proc type deserializeFrom(reader, ref deserializer) throws
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+ +
+
+proc _singlevar.readFF()
+

Read a full single variable, leaving it full.

+
    +
  1. Block until the single variable is full.

  2. +
  3. Read the value of the single variable and leave the variable full

  4. +
+
+
Returns:
+

The value of the single variable.

+
+
+
+ +
+
+proc _singlevar.readXX()
+

Read a single variable regardless of its state, leaving its state unchanged.

+
    +
  1. Without blocking, read the value of the single variable.

  2. +
  3. Leaving the state unchanged, return a value based on the current state:

  4. +
+
+
    +
  • full: return a copy of the stored value.

  • +
  • empty: return either a new default-initialized value of the stored type +or, the last value stored (implementation dependent).

  • +
+
+
+
Returns:
+

The value of the single variable.

+
+
+
+ +
+
+proc _singlevar.writeEF(in val: valType)
+

Write into an empty single variable, leaving it full.

+
    +
  1. Block until the single variable is empty.

  2. +
  3. Write the value of the single variable and leave the variable full.

  4. +
+
+
Arguments:
+

val – New value of the single variable.

+
+
+
+ +
+
+proc _singlevar.isFull
+

Determine if the single variable is full without blocking. +Does not alter the state of the single variable.

+
+
Returns:
+

true if the state of the single variable is full, false if it’s empty.

+
+
+
+ +
+
+operator =(ref lhs: _singlevar(?t), rhs: t)
+
+

Warning

+

Direct assignment to ‘single’ variables is deprecated; apply ‘.writeEF()’ to modify one

+
+
+ +
+
+operator :(from, type t: _singlevar)   where from.type == t.valType
+
+ +
+
+operator :(from: _singlevar, type toType: _singlevar)
+
+

Warning

+

Casting single variables is deprecated

+
+
+ +
+
+proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _singlevar(?), ref rhs: _singlevar(?))
+
+ +
+
+proc chpl__compilerGeneratedCopySyncSingle(ref sv: _singlevar(?))
+
+ +
+
+proc chpl__initCopy(ref sv: _singlevar(?t), definedConst: bool)
+
+

Warning

+

Initializing a type-inferred variable from a ‘single’ is deprecated; apply ‘.readFF()’ to the right-hand side

+
+
+ +
+
+proc chpl__autoCopy(const ref rhs: _singlevar, definedConst: bool)
+
+ +
+
+proc chpl__maybeAutoDestroyed(x: _singlevar(?t)) param
+
+ +
+
+proc chpl__autoDestroy(x: _singlevar(?))
+
+ +
+
+proc chpl__readXX(const ref x: _singlevar(?))
+
+ +
+
+class _singlecls
+

******************************* | ********************************* +* * +* Use of a class instance establishes the required identity property. * +* * +********************************* | *******************************

+
+
+type valType
+
+ +
+
+var value : valType
+
+ +
+
+var singleAux : chpl_single_aux_t
+
+ +
+
+proc init(type valType)
+
+ +
+
+proc init(type valType, in value: valType)
+
+ +
+
+proc deinit()
+
+ +
+
+proc readFF()
+
+ +
+
+proc readXX()
+
+ +
+
+proc writeEF(in val: valType)
+
+ +
+
+proc isFull
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelTaskData.html b/docs/internal/modules/internal/ChapelTaskData.html new file mode 100644 index 000000000..f78f3a40a --- /dev/null +++ b/docs/internal/modules/internal/ChapelTaskData.html @@ -0,0 +1,263 @@ + + + + + + + ChapelTaskData — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelTaskData

+

Usage

+
use ChapelTaskData;
+
+
+

or

+
import ChapelTaskData;
+
+
+
+
+proc chpl_task_data_setDynamicEndCount(tls: c_ptr(chpl_task_infoChapel_t), end: _remoteEndCountType)
+
+ +
+
+proc chpl_task_data_getDynamicEndCount(tls: c_ptr(chpl_task_infoChapel_t))
+
+ +
+
+proc chpl_task_data_setSerial(tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void
+
+ +
+
+proc chpl_task_data_getSerial(tls: c_ptr(chpl_task_infoChapel_t)) : bool
+
+ +
+
+proc chpl_task_data_setNextCoStmtSerial(tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void
+
+ +
+
+proc chpl_task_data_getNextCoStmtSerial(tls: c_ptr(chpl_task_infoChapel_t)) : bool
+
+ +
+
+proc chpl_task_data_setCommDiagsTemporarilyDisabled(tls: c_ptr(chpl_task_infoChapel_t), disabled: bool) : bool
+
+ +
+
+proc chpl_task_data_getCommDiagsTemporarilyDisabled(tls: c_ptr(chpl_task_infoChapel_t)) : bool
+
+ +
+
+proc chpl_task_setDynamicEndCount(end: _remoteEndCountType)
+
+ +
+
+proc chpl_task_getDynamicEndCount() : _remoteEndCountType
+
+ +
+
+export proc chpl_task_setSerial(makeSerial: bool) : void
+
+ +
+
+export proc chpl_task_getSerial() : bool
+
+ +
+
+export proc chpl_task_setCommDiagsTemporarilyDisabled(disabled: bool) : bool
+
+ +
+
+export proc chpl_task_getCommDiagsTemporarilyDisabled() : bool
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelTaskDataHelp.html b/docs/internal/modules/internal/ChapelTaskDataHelp.html new file mode 100644 index 000000000..e119df390 --- /dev/null +++ b/docs/internal/modules/internal/ChapelTaskDataHelp.html @@ -0,0 +1,223 @@ + + + + + + + ChapelTaskDataHelp — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelTaskDataHelp

+

Usage

+
use ChapelTaskDataHelp;
+
+
+

or

+
import ChapelTaskDataHelp;
+
+
+
+
+type chpl_task_infoChapel_t
+
+ +
+
+proc chpl_task_getInfoChapel() : c_ptr(chpl_task_infoChapel_t)
+
+ +
+
+proc chpl_task_getInfoChapelInBundle(args: chpl_task_bundle_p) : c_ptr(chpl_task_infoChapel_t)
+
+ +
+
+proc chpl_task_data_setup(args: chpl_task_bundle_p, infoChapel: c_ptr(chpl_task_infoChapel_t))
+
+ +
+
+proc chpl_save_task_error(e: _EndCountBase, err: unmanaged(Error?))
+
+ +
+
+proc chpl_save_task_error_owned(e: _EndCountBase, in err: owned(Error?))
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelTaskID.html b/docs/internal/modules/internal/ChapelTaskID.html new file mode 100644 index 000000000..3ac268179 --- /dev/null +++ b/docs/internal/modules/internal/ChapelTaskID.html @@ -0,0 +1,218 @@ + + + + + + + ChapelTaskID — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelTaskID

+

Usage

+
use ChapelTaskID;
+
+
+

or

+
import ChapelTaskID;
+
+
+
+
+operator =(ref a: chpl_taskID_t, b: chpl_taskID_t)
+
+ +
+
+operator ==(a: chpl_taskID_t, b: chpl_taskID_t)
+
+ +
+
+operator !=(a: chpl_taskID_t, b: chpl_taskID_t)
+
+ +
+
+operator :(x: chpl_taskID_t, type t: int(64))
+
+ +
+
+operator :(x: chpl_taskID_t, type t: uint(64))
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelThreads.html b/docs/internal/modules/internal/ChapelThreads.html new file mode 100644 index 000000000..f37e7fd22 --- /dev/null +++ b/docs/internal/modules/internal/ChapelThreads.html @@ -0,0 +1,203 @@ + + + + + + + ChapelThreads — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelThreads

+

Usage

+
use ChapelThreads;
+
+
+

or

+
import ChapelThreads;
+
+
+
+
+proc chpl_task_getenvNumThreadsPerLocale() : int(32)
+
+ +
+
+const numThreadsPerLocale : int = chpl_task_getenvNumThreadsPerLocale()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelTuple.html b/docs/internal/modules/internal/ChapelTuple.html new file mode 100644 index 000000000..d6df0e110 --- /dev/null +++ b/docs/internal/modules/internal/ChapelTuple.html @@ -0,0 +1,634 @@ + + + + + + + ChapelTuple — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelTuple

+

Usage

+
use ChapelTuple;
+
+
+

or

+
import ChapelTuple;
+
+
+
+
+record _tuple
+
+
+param size : int
+
+ +
+ +
+
+proc chpl__init_tuple(param size: int)
+
+ +
+
+proc _build_tuple(type t ...) type
+
+ +
+
+proc _build_tuple(x ...)
+
+ +
+
+proc _build_tuple_noref(type t ...) type
+
+ +
+
+proc _build_tuple_always_allow_ref(x ...)
+
+ +
+
+proc chpl__unref(type t) type
+
+ +
+
+operator *(param p: int, type t) type
+
+ +
+
+operator *(param p: uint, type t) type
+
+ +
+
+operator *(param p: bool, type t) type
+
+ +
+
+operator *(p: bool, type t) type
+
+ +
+
+proc _build_star_tuple_noref(param p: int, type t) type
+
+ +
+
+operator *(type t, param p: int)
+
+ +
+
+operator *(p: integral, type t) type
+
+ +
+
+proc chpl__tuplify(x)
+
+ +
+
+proc _check_tuple_var_decl(const ref x: _tuple, param p) param
+
+ +
+
+proc _check_tuple_var_decl(const ref x, param p) param
+
+ +
+
+operator =(ref x: _tuple, y: _tuple)   where x.size == y.size
+
+ +
+
+proc _tuple.this(i: integral) ref
+
+ +
+
+proc _tuple.this(i: bool) ref
+
+ +
+
+config param CHPL_WARN_TUPLE_ITERATION = "unset"
+
+ +
+
+iter ref _tuple.these() ref
+
+ +
+
+iter _tuple.these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter ref _tuple.these(param tag: iterKind, followThis: _tuple) ref  where tag == iterKind.follower
+
+ +
+
+proc _tuple.indices
+
+ +
+
+operator :(x: (?, ?), type t: complex(64))
+

Cast from a generic two-tuple to a complex(64)

+
+ +
+
+operator :(x: (?, ?), type t: complex(128))
+

Cast from a generic two-tuple to a complex(128)

+
+ +
+
+operator :(x: _tuple, type t: _tuple)
+
+ +
+
+proc chpl__tupleRest(t: _tuple)
+
+ +
+
+operator +(a: _tuple)
+
+ +
+
+operator -(a: _tuple)
+
+ +
+
+operator ~(a: _tuple)
+
+ +
+
+operator !(a: _tuple)
+
+ +
+
+proc max(type t) : t  where isTupleType(t)
+

Returns a tuple of type t with each component set to max +of the type in the corresponding component of the argument.

+
+ +
+
+proc min(type t) : t  where isTupleType(t)
+

Returns a tuple of type t with each component set to min +of the type in the corresponding component of the argument.

+
+ +
+
+proc chpl_TwoHomogTuples(t1, t2) param
+
+ +
+
+operator +(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator +(a: _tuple, b: _tuple)
+
+ +
+
+operator -(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator -(a: _tuple, b: _tuple)
+
+ +
+
+operator *(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator *(a: _tuple, b: _tuple)
+
+ +
+
+operator /(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator /(a: _tuple, b: _tuple)
+
+ +
+
+operator %(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator %(a: _tuple, b: _tuple)
+
+ +
+
+operator **(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator **(a: _tuple, b: _tuple)
+
+ +
+
+operator &(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator &(a: _tuple, b: _tuple)
+
+ +
+
+operator |(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator |(a: _tuple, b: _tuple)
+
+ +
+
+operator ^(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator ^(a: _tuple, b: _tuple)
+
+ +
+
+operator <<(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator <<(a: _tuple, b: _tuple)
+
+ +
+
+operator >>(a: _tuple, b: _tuple)   where chpl_TwoHomogTuples(a, b)
+
+ +
+
+operator >>(a: _tuple, b: _tuple)
+
+ +
+
+operator >(a: _tuple, b: _tuple)
+
+ +
+
+operator >=(a: _tuple, b: _tuple)
+
+ +
+
+operator <(a: _tuple, b: _tuple)
+
+ +
+
+operator <=(a: _tuple, b: _tuple)
+
+ +
+
+operator ==(a: _tuple, b: _tuple)
+
+ +
+
+operator !=(a: _tuple, b: _tuple)
+
+ +
+
+operator +(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator +(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator -(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator -(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator *(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator *(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator /(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator /(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator %(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator %(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator **(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator **(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator &(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator &(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator |(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator |(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator ^(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator ^(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator <<(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator <<(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+
+operator >>(x: _tuple, y: x(0).type)   where isHomogeneousTuple(x)
+
+ +
+
+operator >>(x: ?t, y: _tuple)   where isHomogeneousTuple(y) && isCoercible(t, y(0).type)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ChapelUtil.html b/docs/internal/modules/internal/ChapelUtil.html new file mode 100644 index 000000000..469aa167a --- /dev/null +++ b/docs/internal/modules/internal/ChapelUtil.html @@ -0,0 +1,273 @@ + + + + + + + ChapelUtil — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ChapelUtil

+

Usage

+
use ChapelUtil;
+
+
+

or

+
import ChapelUtil;
+
+
+
+
+proc safeAdd(a: ?t, b: t)
+
+ +
+
+proc safeSub(a: ?t, b: t)
+
+ +
+
+proc safeMul(a: ?t, b: t)
+
+ +
+
+proc _command_line_cast(param s: chpl_c_string, type t, x: c_ptrConst(c_char))
+
+ +
+
+record chpl_main_argument
+
+
+var argc : int(64)
+
+ +
+
+var return_value : int(32)
+
+ +
+ +
+
+proc chpl_convert_args(arg: chpl_main_argument)
+
+ +
+
+proc chpl_get_mli_connection(arg: chpl_main_argument)
+
+ +
+
+proc chpl_rt_preUserCodeHook()
+
+ +
+
+proc chpl_rt_postUserCodeHook()
+
+ +
+
+proc allocate_string_literals_buf(s: int) : c_ptrConst(c_char)
+
+ +
+
+proc deallocate_string_literals_buf() : void
+
+ +
+
+config param printModuleDeinitOrder = false
+
+ +
+
+proc chpl_addModule(moduleName: chpl_c_string, deinitFun: chpl_c_fn_ptr)
+
+ +
+
+export proc chpl_deinitModules()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/DefaultAssociative.html b/docs/internal/modules/internal/DefaultAssociative.html new file mode 100644 index 000000000..987c462bc --- /dev/null +++ b/docs/internal/modules/internal/DefaultAssociative.html @@ -0,0 +1,668 @@ + + + + + + + DefaultAssociative — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DefaultAssociative

+

Usage

+
use DefaultAssociative;
+
+
+

or

+
import DefaultAssociative;
+
+
+
+
+config param debugDefaultAssoc = false
+
+ +
+
+config param debugAssocDataPar = false
+
+ +
+
+config param defaultAssociativeSupportsAutoLocalAccess = true
+
+ +
+
+class DefaultAssociativeDomRehashHelper : chpl__rehashHelpers
+
+
+var dom : unmanaged(DefaultAssociativeDom(?))
+
+ +
+
+override proc startRehash(newSize: int)
+
+ +
+
+override proc moveElementDuringRehash(oldSlot: int, newSlot: int)
+
+ +
+
+override proc finishRehash(oldSize: int)
+
+ +
+ +
+
+class DefaultAssociativeDom : BaseAssociativeDom
+
+
+type idxType
+
+ +
+
+param parSafe : bool
+
+ +
+
+var dist : unmanaged(DefaultDist)
+
+ +
+
+var numEntries : chpl__processorAtomicType(int)
+
+ +
+
+var tableLock : if parSafe then chpl_LocalSpinlock else nothing
+
+ +
+
+var table : chpl__hashtable(idxType, nothing)
+
+ +
+
+proc lockTable()
+
+ +
+
+proc unlockTable()
+
+ +
+
+override proc linksDistribution() param
+
+ +
+
+override proc dsiLinksDistribution()
+
+ +
+
+proc init(type idxType, param parSafe: bool, dist: unmanaged(DefaultDist))
+
+ +
+
+proc deinit()
+
+ +
+
+proc dsiBuildArray(type eltType, param initElts: bool)
+
+ +
+
+proc dsiSerialWrite(f) throws  where _usingSerializers(f) && !_isDefaultDeser(f)
+
+ +
+
+proc dsiSerialRead(f) throws  where _usingSerializers(f) && !_isDefaultDeser(f)
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+proc dsiSerialRead(f) throws
+
+ +
+
+proc dsiAssignDomain(rhs: domain, lhsPrivate: bool)
+
+ +
+
+proc dsiNumIndices
+
+ +
+
+iter dsiIndsIterSafeForRemoving()
+
+ +
+
+proc _isSlotFull(slot: int) : bool
+
+ +
+
+iter these()
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+override proc dsiMyDist() : unmanaged(BaseDist)
+
+ +
+
+override proc dsiClear()
+
+ +
+
+proc dsiMember(idx: idxType) : bool
+
+ +
+
+override proc dsiAdd(in idx)
+
+ +
+
+proc _add(in idx: idxType)
+
+ +
+
+proc dsiRemove(idx: idxType)
+
+ +
+
+proc dsiRequestCapacity(numKeys: int)
+
+ +
+
+iter dsiSorted(comparator)
+
+ +
+
+iter _fullSlots()
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc dsiSupportsAutoLocalAccess() param
+
+ +
+ +
+
+class DefaultAssociativeArr : AbsBaseArr(?)
+
+
+type idxType
+
+ +
+
+param parSafeDom : bool
+
+ +
+
+var dom : unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom))
+
+ +
+
+var dataSize : int
+
+ +
+
+var data : _ddata(eltType)
+
+ +
+
+var tmpData : _ddata(eltType)
+
+ +
+
+var eltsNeedDeinit = true
+
+ +
+
+proc init(type eltType, type idxType, param parSafeDom, dom: unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom)), param initElts)
+
+ +
+
+proc deinit()
+
+ +
+
+proc rank param
+
+ +
+
+override proc dsiGetBaseDom()
+
+ +
+
+proc dsiAccess(idx: idxType) ref
+
+ +
+
+proc dsiAccess(idx: 1*(idxType)) ref
+
+ +
+
+proc dsiAccess(idx: idxType)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(idx: 1*(idxType)) ref  where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(idx: idxType) const ref
+
+ +
+
+proc dsiAccess(idx: 1*(idxType)) const ref
+
+ +
+
+proc dsiLocalAccess(i) ref
+
+ +
+
+proc dsiLocalAccess(i)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiLocalAccess(i) const ref
+
+ +
+
+iter these() ref
+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis) ref  where tag == iterKind.follower
+
+ +
+
+proc dsiSerialReadWrite(f, in printBraces = true, inout first = true) throws  where _usingSerializers(f) && !_isDefaultDeser(f)
+
+ +
+
+proc dsiSerialReadWrite(f, in printBraces = true, inout first = true) throws  where _isDefaultDeser(f)
+
+ +
+
+proc dsiSerialReadWrite(f, in printBraces = true, inout first = true) throws
+
+ +
+
+proc readChapelStyleAssocArray(f) throws
+
+ +
+
+proc dsiSerialWrite(f) throws
+
+ +
+
+proc dsiSerialRead(f) throws
+
+ +
+
+iter dsiSorted(comparator)
+
+ +
+
+proc _doDefaultInitSlot(slot: int, inAdd: bool)
+
+ +
+
+override proc _defaultInitSlot(slot: int)
+
+ +
+
+override proc _deinitSlot(slot: int)
+
+ +
+
+proc _elementNeedsDeinit() param
+
+ +
+
+proc _deinitElement(ref elt: eltType)
+
+ +
+
+override proc _startRehash(newSize: int)
+
+ +
+
+override proc _finishRehash(oldSize: int)
+
+ +
+
+override proc _moveElementDuringRehash(oldslot: int, newslot: int)
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiElementDeinitializationComplete()
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+ +
+
+proc chpl_serialReadWriteAssociativeHelper(f, arr, dom) throws  where _usingSerializers(f) && !_isDefaultDeser(f)
+
+ +
+
+proc chpl_serialReadWriteAssociativeHelper(f, arr, dom) throws
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/DefaultRectangular.html b/docs/internal/modules/internal/DefaultRectangular.html new file mode 100644 index 000000000..f9a52272b --- /dev/null +++ b/docs/internal/modules/internal/DefaultRectangular.html @@ -0,0 +1,1362 @@ + + + + + + + DefaultRectangular — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DefaultRectangular

+

Usage

+
use DefaultRectangular;
+
+
+

or

+
import DefaultRectangular;
+
+
+
+
+config const dataParTasksPerLocale = 0
+
+

Warning

+

The variable ‘dataParTasksPerLocale’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const dataParIgnoreRunningTasks = false
+
+

Warning

+

The variable ‘dataParIgnoreRunningTasks’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const dataParMinGranularity : int = 1
+
+

Warning

+

The variable ‘dataParMinGranularity’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config param debugDefaultDist = false
+
+ +
+
+config param debugDefaultDistBulkTransfer = false
+
+ +
+
+config param debugDataPar = false
+
+ +
+
+config param debugDataParNuma = false
+
+ +
+
+config param disableArrRealloc = false
+
+ +
+
+config param reportInPlaceRealloc = false
+
+ +
+
+config param parallelAssignThreshold = 2 * 1024 * 1024
+
+ +
+
+config param enableParallelGetsInAssignment = false
+
+ +
+
+config param enableParallelPutsInAssignment = false
+
+ +
+
+config param defaultDoRADOpt = true
+
+ +
+
+config param defaultDisableLazyRADOpt = false
+
+ +
+
+config param earlyShiftData = true
+
+ +
+
+config param usePollyArrayIndex = false
+
+ +
+
+config param defaultRectangularSupportsAutoLocalAccess = true
+
+ +
+
+enum ArrayStorageOrder { RMO, CMO }
+
+
+enum constant RMO
+
+ +
+
+enum constant CMO
+
+ +
+ +
+
+config param defaultStorageOrder = ArrayStorageOrder.RMO
+
+ +
+
+param storageOrder = defaultStorageOrder
+
+ +
+
+proc polly_array_index(arguments: int ...) : int
+
+ +
+
+class DefaultDist : BaseDist
+
+

Warning

+

DefaultDist is unstable and may change in the future

+
+
+
+override proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds)
+
+ +
+
+override proc dsiNewAssociativeDom(type idxType, param parSafe: bool)
+
+ +
+
+override proc dsiNewSparseDom(param rank: int, type idxType, dom: domain)
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiIndexToLocale(ind)
+
+ +
+
+proc dsiClone()
+
+ +
+
+proc dsiAssign(other: this.type)
+
+ +
+
+proc dsiEqualDMaps(d: unmanaged(DefaultDist)) param
+
+ +
+
+proc dsiEqualDMaps(d) param
+
+ +
+
+override proc trackDomains() param
+
+ +
+
+override proc dsiTrackDomains()
+
+ +
+
+override proc singleton() param
+
+ +
+
+override proc dsiIsLayout() param
+
+ +
+ +
+
+var defaultDist = new dmap(new unmanaged DefaultDist())
+
+ +
+
+proc chpl_defaultDistInitPrivate()
+
+ +
+
+class DefaultRectangularDom : BaseRectangularDom(?)
+
+
+var dist : unmanaged(DefaultDist)
+
+ +
+
+var ranges : rank*range(idxType, boundKind.both, strides)
+
+ +
+
+override proc linksDistribution() param
+
+ +
+
+override proc dsiLinksDistribution()
+
+ +
+
+override proc type isDefaultRectangular() param
+
+ +
+
+override proc isDefaultRectangular() param
+
+ +
+
+proc init(param rank, type idxType, param strides, dist)
+
+ +
+
+proc chpl_integralIdxType type
+
+ +
+
+override proc dsiMyDist()
+
+ +
+
+record _serialized_domain
+
+
+param rank
+
+ +
+
+type idxType
+
+ +
+
+param strides
+
+ +
+
+var dims
+
+ +
+
+param isDefaultRectangular
+
+ +
+ +
+
+proc chpl__serialize()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+override proc dsiDisplayRepresentation()
+
+ +
+
+proc dsiGetIndices()
+
+ +
+
+proc dsiSetIndices(x)
+
+ +
+
+proc dsiAssignDomain(rhs: domain, lhsPrivate: bool)
+
+ +
+
+iter these_help(param d: int)
+
+ +
+
+iter these_help(param d: int, block)
+
+
iter these_help(param d: int) where storageOrder == ArrayStorageOrder.CMO {

param rd = rank - d + 1; +if rd == 1 {

+
+
+
for i in ranges(rd) do

yield i;

+
+
+
+
+
} else if rd == 2 {
+
for i in ranges(rd) do
+
for j in these_help(rank-1) do

yield (j, i);

+
+
+
+
+
+
} else {
+
for i in ranges(rd) do
+
for j in these_help(d+1) do

yield ((…j), i);

+
+
+
+
+
+
+

}

+
+
+

}

+
+ +
+
+iter these(tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType))
+
+
iter these_help(param d: int, block) where storageOrder == ArrayStorageOrder.CMO {

param rd = rank - d + 1; +if rd == 1 {

+
+
+
for i in block(rd) do

yield i;

+
+
+
+
+
} else if rd == 2 {
+
for i in block(rd) do
+
for j in these_help(block.size, block) do

yield (j, i);

+
+
+
+
+
+
} else {
+
for i in block(rd) do
+
for j in these_help(d+1, block) do

yield ((…j), i);

+
+
+
+
+
+
+

}

+
+
+

}

+
+ +
+
+iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType))   where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType))   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType))   where tag == iterKind.follower
+
+ +
+
+proc dsiMember(ind: rank*idxType)
+
+ +
+
+proc dsiIndexOrder(ind: rank*idxType)
+
+ +
+
+proc dsiDims()
+
+ +
+
+proc dsiDim(d: int)
+
+ +
+
+proc dsiDim(param d: int)
+
+ +
+
+proc dsiNumIndices
+
+ +
+
+proc parSafe param
+
+ +
+
+override proc dsiLow
+
+ +
+
+override proc dsiHigh
+
+ +
+
+override proc dsiAlignedLow
+
+ +
+
+override proc dsiAlignedHigh
+
+ +
+
+override proc dsiStride
+
+ +
+
+override proc dsiAlignment
+
+ +
+
+override proc dsiFirst
+
+ +
+
+override proc dsiLast
+
+ +
+
+proc dsiBuildArray(type eltType, param initElts: bool)
+
+ +
+
+proc doiTryCreateArray(type eltType) throws
+
+ +
+
+proc dsiBuildArrayWith(type eltType, data: _ddata(eltType), allocSize: int)
+
+ +
+
+proc dsiLocalSlice(ranges)
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+iter dsiLocalSubdomains(loc: locale)
+
+ +
+
+proc chpl_intToIdx(i)
+
+ +
+ +
+
+proc chpl__intToIdx(type idxType, i: integral, j ...)
+
+ +
+
+proc chpl__intToIdx(type idxType, i: integral, j: integral)
+
+ +
+
+proc chpl__intToIdx(type idxType, i: _tuple)
+
+ +
+
+record _remoteAccessData
+
+
+type eltType
+
+ +
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+param strides : strideKind
+
+ +
+
+param blkChanged : bool = false
+
+ +
+
+var off : rank*idxType
+
+ +
+
+var blk : rank*int
+
+ +
+
+var str : rank*chpl__signedType(chpl__idxTypeToIntIdxType(idxType))
+
+ +
+
+var origin : int
+
+ +
+
+var factoredOffs : int
+
+ +
+
+var data : _ddata(eltType)
+
+ +
+
+var shiftedData : _ddata(eltType)
+
+ +
+
+proc hasUnitStride() param
+
+ +
+
+proc ref theData ref
+
+ +
+
+proc getDataElem(i) ref
+
+ +
+
+proc dataElem(i) ref
+
+ +
+
+proc shiftedDataElem(i) ref
+
+ +
+ +
+
+proc _remoteAccessData.getDataIndex(ind: idxType)
+
+ +
+
+proc _remoteAccessData.getDataIndex(ind: rank*idxType)
+
+ +
+
+proc ref _remoteAccessData.computeFactoredOffs()
+
+ +
+
+proc ref _remoteAccessData.initShiftedData()
+
+ +
+
+proc _remoteAccessData.strideAlignUp(lo, r)
+
+ +
+
+proc _remoteAccessData.strideAlignDown(hi, r)
+
+ +
+
+proc ref _remoteAccessData.initDataFrom(other: _remoteAccessData)
+
+ +
+
+proc _remoteAccessData.toSlice(newDom)
+
+ +
+
+proc _remoteAccessData.toReindex(newDom)
+
+ +
+
+proc _remoteAccessData.toRankChange(newDom, cd, idx)
+
+ +
+
+class LocRADCache
+
+
+type eltType
+
+ +
+
+param rank : int
+
+ +
+
+type idxType
+
+ +
+
+param strides : strideKind
+
+ +
+
+var targetLocDom : domain(rank)
+
+ +
+
+var RAD : [targetLocDom] _remoteAccessData(eltType, rank, idxType, strides)
+
+ +
+
+var RADLocks : [targetLocDom] chpl_LocalSpinlock
+
+ +
+
+proc init(type eltType, param rank: int, type idxType, param strides: strideKind, newTargetLocDom: domain(rank))
+
+ +
+
+proc lockRAD(rlocIdx)
+
+ +
+
+proc unlockRAD(rlocIdx)
+
+ +
+ +
+
+class DefaultRectangularArr : BaseRectangularArr(?)
+
+
+type idxSignedType = chpl__signedType(chpl__idxTypeToIntIdxType(idxType))
+
+ +
+
+var dom : unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides))
+
+ +
+
+var off : rank*idxType
+
+ +
+
+var blk : rank*int
+
+ +
+
+var sizesPerDim : rank*int
+
+ +
+
+var str : rank*idxSignedType
+
+ +
+
+var factoredOffs : int
+
+ +
+
+var data : _ddata(eltType) = nil
+
+ +
+
+var shiftedData : _ddata(eltType)
+
+ +
+
+var externFreeFunc : c_ptr(void)
+
+ +
+
+var externArr : bool = false
+
+ +
+
+var _borrowed : bool = true
+
+ +
+
+var callPostAlloc : bool = true
+
+ +
+
+var deinitElts : bool = true
+
+ +
+
+proc init(type eltType, param rank, type idxType, param strides, dom: unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides)), param initElts = true, param deinitElts = initElts, data: _ddata(eltType) = nil, externArr = false, _borrowed = false, externFreeFunc: c_ptr(void) = nil)
+
+ +
+
+proc chpl_integralIdxType type
+
+ +
+
+override proc dsiDisplayRepresentation()
+
+ +
+
+override proc dsiGetBaseDom()
+
+ +
+
+override proc dsiElementInitializationComplete()
+
+ +
+
+override proc dsiElementDeinitializationComplete()
+
+ +
+
+override proc chpl_unsafeAssignIsClassElementNil(manager, idx)   where idx.type == rank * idxType
+
+ +
+
+override proc dsiDestroyArr(deinitElts: bool)
+
+ +
+
+proc theData ref
+
+ +
+
+iter these(tasksPerLocale: int = dataParTasksPerLocale, ignoreRunning: bool = dataParIgnoreRunningTasks, minIndicesPerTask: int = dataParMinGranularity) ref
+
+ +
+
+iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref  where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref  where tag == iterKind.follower
+
+ +
+
+proc computeFactoredOffs()
+
+ +
+
+proc initShiftedData()
+
+ +
+
+proc setupFieldsAndAllocate(param initElts)
+
+ +
+
+proc getDataIndex(ind: idxType ...1, param getShifted = true)   where rank == 1
+
+ +
+
+proc getDataIndex(ind: rank*idxType, param getShifted = true)
+
+ +
+
+proc dsiAccess(ind: idxType ...1) ref  where rank == 1
+
+ +
+
+proc dsiAccess(ind: idxType ...1)   where rank == 1 && shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(ind: idxType ...1) const ref  where rank == 1
+
+ +
+
+proc dsiAccess(const in ind: rank*idxType) ref
+
+ +
+
+proc dsiAccess(const in ind: rank*idxType)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(const in ind: rank*idxType) const ref
+
+ +
+
+proc dsiBoundsCheck(i)
+
+ +
+
+proc adjustBlkOffStrForNewDomain(d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr))
+
+ +
+
+proc adjustBlkOffStrForNewDomain(d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr))   where dom.hasUnitStride() && this.hasUnitStride()
+
+ +
+
+override proc dsiReallocate(bounds: rank*range(idxType, boundKind.both, strides))
+
+ +
+
+override proc dsiPostReallocate()
+
+ +
+
+proc dsiLocalSlice(ranges)
+
+ +
+
+proc dsiGetRAD()
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+iter dsiLocalSubdomains(loc: locale)
+
+ +
+
+override proc dsiIteratorYieldsLocalElements() param
+
+ +
+ +
+
+iter chpl__serialViewIter1D(arr, viewRange) ref  where chpl__isDROrDRView(arr)
+
+ +
+
+iter chpl__serialViewIter(arr, viewDom) ref  where chpl__isDROrDRView(arr)
+
+ +
+
+iter chpl__serialViewIter(arr, viewDom) ref
+
+ +
+
+iter chpl__serialViewIterHelper(arr, viewDom) ref
+
+ +
+
+proc DefaultRectangularDom.dsiSerialReadWrite(f) throws
+
+ +
+
+proc DefaultRectangularDom.dsiSerialWrite(f) throws  where _supportsSerializers(f) && !isDefaultSerializerType(f.serializerType)
+
+ +
+
+proc DefaultRectangularDom.dsiSerialRead(f) throws  where _supportsSerializers(f) && f.deserializerType != IO.defaultDeserializer
+
+ +
+
+proc DefaultRectangularDom.doiToString()
+
+ +
+
+proc DefaultRectangularDom.dsiSerialWrite(f) throws
+
+ +
+
+proc DefaultRectangularDom.dsiSerialRead(f) throws
+
+ +
+
+proc DefaultRectangularArr.dsiSerialReadWrite(f) throws
+
+ +
+
+override proc DefaultRectangularDom.dsiSupportsAutoLocalAccess() param
+
+ +
+
+proc chpl_serialReadWriteRectangular(f, arr) throws
+
+ +
+
+proc chpl_serialReadWriteRectangular(f, arr, dom) throws
+
+ +
+
+proc _supportsBulkElements(f, arr) param : bool
+
+ +
+
+proc _supportsSerializers(f) param : bool
+
+ +
+
+proc chpl_serialReadWriteRectangularHelper(f, arr, dom) throws  where _supportsSerializers(f)
+
+ +
+
+proc chpl_serialReadWriteRectangularHelper(f, arr, dom) throws
+
+ +
+
+proc DefaultRectangularArr.dsiSerialWrite(f) throws
+
+ +
+
+proc DefaultRectangularArr.dsiSerialRead(f) throws
+
+ +
+
+proc DefaultRectangularArr.isDataContiguous(dom: domain)
+
+ +
+
+proc DefaultRectangularArr.isDataContiguous(dom: range)
+
+ +
+
+proc DefaultRectangularArr.isDataContiguous(dom)
+
+ +
+
+override proc DefaultRectangularArr.doiCanBulkTransferRankChange() param
+
+ +
+
+proc DefaultRectangularArr.doiBulkTransferToKnown(srcDom, destClass: DefaultRectangularArr, destDom) : bool
+
+ +
+
+proc DefaultRectangularArr.doiBulkTransferFromKnown(destDom, srcClass: DefaultRectangularArr, srcDom) : bool
+
+ +
+
+override proc DefaultRectangularArr.isDefaultRectangular() param
+
+ +
+
+override proc type DefaultRectangularArr.isDefaultRectangular() param
+
+ +
+
+config param debugDRScan = false
+
+ +
+
+proc DefaultRectangularArr.doiScan(op, dom)   where rank == 1 && chpl__scanStateResTypesMatch(op)
+

This computes a 1D scan in parallel on the array, for 1D arrays only

+
+ +
+
+proc DefaultRectangularArr.doiOptimizedSwap(other: this.type)
+
+ +
+
+proc DefaultRectangularArr.doiOptimizedSwap(other)   where debugOptimizedSwap
+
+ +
+
+proc DefaultRectangularArr.chpl__preScan(op, ref res: [] ?resType, dom)
+
+ +
+
+proc DefaultRectangularArr.chpl__postScan(op, ref res, numTasks, rngs, state)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/DefaultSparse.html b/docs/internal/modules/internal/DefaultSparse.html new file mode 100644 index 000000000..77c3e5ce5 --- /dev/null +++ b/docs/internal/modules/internal/DefaultSparse.html @@ -0,0 +1,463 @@ + + + + + + + DefaultSparse — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

DefaultSparse

+

Usage

+
use DefaultSparse;
+
+
+

or

+
import DefaultSparse;
+
+
+
+
+config param debugDefaultSparse = false
+
+ +
+
+config param defaultSparseSupportsAutoLocalAccess = true
+
+ +
+
+class DefaultSparseDom : BaseSparseDomImpl(?)
+
+
+var dist : unmanaged(DefaultDist)
+
+ +
+
+var _nnz = 0
+
+ +
+
+var _indices : [nnzDom] index(rank, idxType)
+
+ +
+
+override proc linksDistribution() param
+
+ +
+
+override proc dsiLinksDistribution()
+
+ +
+
+proc init(param rank, type idxType, dist: unmanaged(DefaultDist), parentDom: domain)
+
+ +
+
+override proc getNNZ() : int
+
+ +
+
+proc dsiBuildArray(type eltType, param initElts: bool)
+
+ +
+
+iter dsiIndsIterSafeForRemoving()
+
+ +
+
+iter these()
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis: (?, ?, ?))   where tag == iterKind.follower
+
+ +
+
+iter these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+proc find(ind)
+
+ +
+
+proc dsiMember(ind)
+
+ +
+
+proc parSafe param
+
+ +
+
+override proc dsiFirst
+
+ +
+
+override proc dsiLast
+
+ +
+
+proc add_help(ind)
+
+ +
+
+proc rem_help(ind)
+
+ +
+
+proc dsiAdd(ind: idxType)   where rank == 1
+
+ +
+
+proc dsiRemove(ind: idxType)   where rank == 1
+
+ +
+
+proc dsiAdd(ind: rank*idxType)
+
+ +
+
+proc dsiRemove(ind: rank*idxType)
+
+ +
+
+override proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale)
+
+ +
+
+override proc dsiMyDist() : unmanaged(BaseDist)
+
+ +
+
+override proc dsiClear()
+
+ +
+
+iter dimIter(param d, ind)
+
+ +
+
+proc dsiAssignDomain(rhs: domain, lhsPrivate: bool)
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+override proc dsiSupportsAutoLocalAccess() param
+
+ +
+ +
+
+class DefaultSparseArr : BaseSparseArrImpl(?)
+
+
+proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool)
+
+ +
+
+proc dsiAccess(ind: rank*idxType) ref
+
+ +
+
+proc dsiAccess(ind: rank*idxType)   where shouldReturnRvalueByValue(eltType)
+
+ +
+
+proc dsiAccess(ind: rank*idxType) const ref
+
+ +
+
+iter these() ref
+
+ +
+
+iter these(param tag: iterKind) ref  where tag == iterKind.standalone
+
+ +
+
+iter these(param tag: iterKind)   where tag == iterKind.leader
+
+ +
+
+iter these(param tag: iterKind, followThis: (?, ?, ?)) ref  where tag == iterKind.follower
+
+ +
+
+iter these(param tag: iterKind, followThis)   where tag == iterKind.follower
+
+ +
+
+proc dsiTargetLocales() const ref
+
+ +
+
+proc dsiHasSingleLocalSubdomain() param
+
+ +
+
+proc dsiLocalSubdomain(loc: locale)
+
+ +
+
+proc doiBulkTransferToKnown(srcDom, destClass: this.type, destDom)
+
+ +
+
+proc doiBulkTransferFromKnown(destDom, srcClass: this.type, srcDom) : bool
+
+ +
+ +
+
+proc DefaultSparseDom.dsiSerialWrite(f, printBrackets = true) throws
+
+ +
+
+proc DefaultSparseArr.dsiSerialWrite(f) throws
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ExportWrappers.html b/docs/internal/modules/internal/ExportWrappers.html new file mode 100644 index 000000000..baf07e0b7 --- /dev/null +++ b/docs/internal/modules/internal/ExportWrappers.html @@ -0,0 +1,277 @@ + + + + + + + ExportWrappers — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ExportWrappers

+

Usage

+
use ExportWrappers;
+
+
+

or

+
import ExportWrappers;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+export proc chpl_libraryModuleLevelSetup() : void
+
+ +
+
+export proc chpl_libraryModuleLevelCleanup() : void
+
+ +
+
+record chpl_byte_buffer
+
+
+var isOwned : int(8)
+
+ +
+
+var data : c_ptr(c_char)
+
+ +
+
+var size : uint(64)
+
+ +
+ +
+
+proc chpl_byte_buffer_free(cb: chpl_byte_buffer)
+
+ +
+
+type chpl__exportTypeChplByteBuffer = chpl_byte_buffer
+
+ +
+
+proc chpl__exportRetStringOrBytes(ref val) : chpl_byte_buffer
+
+ +
+
+proc chpl__exportRet(ref val: string, type rt: chpl_byte_buffer) : rt
+
+ +
+
+proc chpl__exportRet(ref val: bytes, type rt: chpl_byte_buffer) : rt
+
+ +
+
+proc chpl__exportArg(cp: bool, val: chpl_byte_buffer, type rt: string) : rt
+
+ +
+
+proc chpl__exportArg(cp: bool, val: chpl_byte_buffer, type rt: bytes) : rt
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ExternalArray.html b/docs/internal/modules/internal/ExternalArray.html new file mode 100644 index 000000000..d592c5580 --- /dev/null +++ b/docs/internal/modules/internal/ExternalArray.html @@ -0,0 +1,313 @@ + + + + + + + ExternalArray — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ExternalArray

+

Usage

+
use ExternalArray;
+
+
+

or

+
import ExternalArray;
+
+
+
+
+record chpl_opaque_array
+
+
+var _pid : int
+
+ +
+
+var _instance : c_ptr(void)
+
+ +
+
+var _unowned : bool
+
+ +
+ +
+
+record chpl_external_array
+
+
+var elts : c_ptr(void)
+
+ +
+
+var num_elts : uint
+
+ +
+
+var freer : c_ptr(void)
+
+ +
+ +
+
+proc chpl_make_external_array(elt_size: uint, num_elts: uint) : chpl_external_array
+
+ +
+
+proc chpl_make_external_array_ptr(elts: c_ptr(void), num_elts: uint) : chpl_external_array
+
+ +
+
+proc chpl_make_external_array_ptr_free(elts: c_ptr(void), num_elts: uint) : chpl_external_array
+
+ +
+
+proc chpl_free_external_array(in x: chpl_external_array)
+
+ +
+
+proc chpl_call_free_func(func: c_ptr(void), elts: c_ptr(void))
+
+ +
+
+proc makeArrayFromPtr(value: c_ptr, num_elts: uint)
+
+ +
+
+proc makeArrayFromPtr(value: c_ptr, dom: domain)
+
+ +
+
+proc makeArrayFromExternArray(value: chpl_external_array, type eltType)
+
+ +
+
+proc makeArrayFromExternArray(value: chpl_external_array, type eltType, dom: domain)   where dom.isRectangular()
+
+ +
+
+proc makeArrayFromOpaque(value: chpl_opaque_array, type arrType)
+
+ +
+
+proc convertStringOrBytes(ref arr: []) : chpl_external_array  where arr.eltType == string || arr.eltType == bytes
+
+ +
+
+proc convertToExternalArray(in arr: []) : chpl_external_array  where getExternalArrayType(arr) == chpl_external_array
+
+ +
+
+proc convertToExternalArray(ref arr: []) : chpl_opaque_array  where getExternalArrayType(arr) == chpl_opaque_array
+
+ +
+
+proc getExternalArrayType(arg) type
+
+ +
+
+proc getExternalArrayType(type arg) type
+
+ +
+
+export proc cleanupOpaqueArray(const ref arr: chpl_opaque_array)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/ISO_Fortran_binding.html b/docs/internal/modules/internal/ISO_Fortran_binding.html new file mode 100644 index 000000000..926b74c6e --- /dev/null +++ b/docs/internal/modules/internal/ISO_Fortran_binding.html @@ -0,0 +1,620 @@ + + + + + + + ISO_Fortran_binding — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

ISO_Fortran_binding

+

Usage

+
use ISO_Fortran_binding;
+
+
+

or

+
import ISO_Fortran_binding;
+
+
+
+
+const CFI_attribute_pointer : int
+
+ +
+
+const CFI_attribute_allocatable : int
+
+ +
+
+const CFI_attribute_other : int
+
+ +
+
+const CFI__max_attribute : int
+
+ +
+
+const CFI_type_int8_t : int
+
+ +
+
+const CFI_type_int16_t : int
+
+ +
+
+const CFI_type_int32_t : int
+
+ +
+
+const CFI_type_int64_t : int
+
+ +
+
+const CFI_type_signed_char : int
+
+ +
+
+const CFI_type_short : int
+
+ +
+
+const CFI_type_int : int
+
+ +
+
+const CFI_type_long : int
+
+ +
+
+const CFI_type_long_long : int
+
+ +
+
+const CFI_type_size_t : int
+
+ +
+
+const CFI_type_int_least8_t : int
+
+ +
+
+const CFI_type_int_least16_t : int
+
+ +
+
+const CFI_type_int_least32_t : int
+
+ +
+
+const CFI_type_int_least64_t : int
+
+ +
+
+const CFI_type_int_fast8_t : int
+
+ +
+
+const CFI_type_int_fast16_t : int
+
+ +
+
+const CFI_type_int_fast32_t : int
+
+ +
+
+const CFI_type_int_fast64_t : int
+
+ +
+
+const CFI_type_intmax_t : int
+
+ +
+
+const CFI_type_intptr_t : int
+
+ +
+
+const CFI_type_ptrdiff_t : int
+
+ +
+
+const CFI_type_float : int
+
+ +
+
+const CFI_type_double : int
+
+ +
+
+const CFI_type_long_double : int
+
+ +
+
+const CFI_type_double_Complex : int
+
+ +
+
+const CFI_type_long_double_Complex : int
+
+ +
+
+const CFI_type_Bool : int
+
+ +
+
+const CFI_type_char : int
+
+ +
+
+const CFI_type_cptr : int
+
+ +
+
+const CFI_type_struct : int
+
+ +
+
+const CFI_type_other : int
+
+ +
+
+const CFI__max_type : int
+
+ +
+
+const CFI_SUCCESS : int
+
+ +
+
+const CFI_ERROR_BASE_ADDR_NULL : int
+
+ +
+
+const CFI_ERROR_BASE_ADDR_NOT_NULL : int
+
+ +
+
+const CFI_INVALID_ELEM_LEN : int
+
+ +
+
+const CFI_INVALID_RANK : int
+
+ +
+
+const CFI_INVALID_TYPE : int
+
+ +
+
+const CFI_INVALID_ATTRIBUTE : int
+
+ +
+
+const CFI_INVALID_EXTENT : int
+
+ +
+
+const CFI_INVALID_DESCRIPTOR : int
+
+ +
+
+const CFI_ERROR_MEM_ALLOCATION : int
+
+ +
+
+const CFI_ERROR_OUT_OF_BOUNDS : int
+
+ +
+
+const CFI_MAX_RANK : int
+
+ +
+
+const CFI_VERSION : int
+
+ +
+
+const CFI__VERSION_0001 : int
+
+ +
+
+proc CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t))
+
+ +
+
+proc for_CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t)) : c_ptr(void)
+
+ +
+
+proc CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int
+
+ +
+
+proc for_CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int
+
+ +
+
+proc CFI_deallocate(ref dv: CFI_cdesc_t) : c_int
+
+ +
+
+proc for_CFI_deallocate(ref dv: CFI_cdesc_t) : c_int
+
+ +
+
+proc CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t)) : c_int
+
+ +
+
+proc for_CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t), version: c_int) : c_int
+
+ +
+
+proc CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int
+
+ +
+
+proc for_CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int
+
+ +
+
+proc CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int
+
+ +
+
+proc for_CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int
+
+ +
+
+proc CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int
+
+ +
+
+proc for_CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int
+
+ +
+
+proc CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int
+
+ +
+
+proc for_CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int
+
+ +
+
+type CFI_attribute_t = c_ptrdiff
+
+ +
+
+record CFI_cdesc_t
+
+
+var base_addr : c_ptr(void)
+
+ +
+
+var elem_len : c_size_t
+
+ +
+
+var version : c_int
+
+ +
+
+var attribute : CFI_attribute_t
+
+ +
+
+var rank : CFI_rank_t
+
+ +
+
+var ctype : CFI_type_t
+
+ +
+
+var dim : c_ptr(CFI_dim_t)
+
+ +
+ +
+
+record CFI_dim_t
+
+
extern record CFI_CDESC_T {

param r: int; +var base_addr: c_ptr(void); +var elem_len: c_size_t; +var version: c_int; +var attribute: CFI_attribute_t; +var rank: CFI_rank_t; +//var type: CFI_type_t; +var dim: [0..#r] CFI_dim_t;

+
+
+

}

+
+
+var extent : CFI_index_t
+
+ +
+
+var sm : CFI_index_t
+
+ +
+
+var lower_bound : CFI_index_t
+
+ +
+ +
+
+type CFI_index_t = c_ptrdiff
+
+ +
+
+type CFI_rank_t = c_ptrdiff
+
+ +
+
+type CFI_type_t = c_ptrdiff
+
+ +
+
+proc makeArrayFromFortranArray(ref FA: CFI_cdesc_t, type eltType, param rank = 1)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpAPU.html b/docs/internal/modules/internal/LocaleModelHelpAPU.html new file mode 100644 index 000000000..8e43ed881 --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpAPU.html @@ -0,0 +1,256 @@ + + + + + + + LocaleModelHelpAPU — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpAPU

+

Usage

+
use LocaleModelHelpAPU;
+
+
+

or

+
import LocaleModelHelpAPU;
+
+
+
    +
  • Copyright 2017 Advanced Micro Devices, Inc.

  • +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • Licensed under the Apache License, Version 2.0 (the “License”);

  • +
  • you may not use this file except in compliance with the License.

  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+param localeModelHasSublocales = true
+
+ +
+
+param localeModelPartitionsIterationOnSublocales = true
+
+ +
+
+config param debugAPULocale = false
+
+ +
+
+proc chpl_getSubloc()
+
+ +
+
+proc chpl_task_setSubloc(subloc: int(32))
+
+ +
+
+export proc chpl_doDirectExecuteOn(const ref loc: chpl_localeID_t) : bool
+
+ +
+
+export proc chpl_executeOn(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+export proc chpl_executeOnFast(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+export proc chpl_executeOnNB(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpFlat.html b/docs/internal/modules/internal/LocaleModelHelpFlat.html new file mode 100644 index 000000000..140d791c5 --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpFlat.html @@ -0,0 +1,242 @@ + + + + + + + LocaleModelHelpFlat — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpFlat

+

Usage

+
use LocaleModelHelpFlat;
+
+
+

or

+
import LocaleModelHelpFlat;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+param localeModelHasSublocales = false
+
+ +
+
+param localeModelPartitionsIterationOnSublocales = false
+
+ +
+
+export proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool
+
+ +
+
+export proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+export proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+export proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpGPU.html b/docs/internal/modules/internal/LocaleModelHelpGPU.html new file mode 100644 index 000000000..6a6800b8c --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpGPU.html @@ -0,0 +1,255 @@ + + + + + + + LocaleModelHelpGPU — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpGPU

+

Usage

+
use LocaleModelHelpGPU;
+
+
+

or

+
import LocaleModelHelpGPU;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • Licensed under the Apache License, Version 2.0 (the “License”);

  • +
  • you may not use this file except in compliance with the License.

  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+param localeModelHasSublocales = true
+
+ +
+
+param localeModelPartitionsIterationOnSublocales = false
+
+ +
+
+config param debugGPULocale = false
+
+ +
+
+proc chpl_getSubloc()
+
+ +
+
+proc chpl_task_setSubloc(subloc: int(32))
+
+ +
+
+proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool
+
+ +
+
+proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpMem.html b/docs/internal/modules/internal/LocaleModelHelpMem.html new file mode 100644 index 000000000..f52e9bf34 --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpMem.html @@ -0,0 +1,228 @@ + + + + + + + LocaleModelHelpMem — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpMem

+

Usage

+
use LocaleModelHelpMem;
+
+
+

or

+
import LocaleModelHelpMem;
+
+
+
+
+proc chpl_here_alloc(size: int(64), md: chpl_mem_descInt_t) : c_ptr(void)
+
+ +
+
+proc chpl_here_alloc(size: integral, md: chpl_mem_descInt_t) : c_ptr(void)
+
+ +
+
+proc chpl_here_aligned_alloc(alignment: integral, size: integral, md: chpl_mem_descInt_t) : c_ptr(void)
+
+ +
+
+proc chpl_here_calloc(size: integral, number: integral, md: chpl_mem_descInt_t) : c_ptr(void)
+
+ +
+
+proc chpl_here_realloc(ptr: c_ptr(void), size: integral, md: chpl_mem_descInt_t) : c_ptr(void)
+
+ +
+
+proc chpl_here_good_alloc_size(min_size: integral) : min_size.type
+
+ +
+
+proc chpl_here_free(ptr: c_ptr(void)) : void
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpRuntime.html b/docs/internal/modules/internal/LocaleModelHelpRuntime.html new file mode 100644 index 000000000..4a1c97738 --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpRuntime.html @@ -0,0 +1,312 @@ + + + + + + + LocaleModelHelpRuntime — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpRuntime

+

Usage

+
use LocaleModelHelpRuntime;
+
+
+

or

+
import LocaleModelHelpRuntime;
+
+
+
+
+record chpl_localeID_t
+
+ +
+
+record chpl_comm_on_bundle_t
+
+ +
+
+record chpl_task_bundle_t
+
+ +
+
+type chpl_comm_on_bundle_p
+
+ +
+
+type chpl_task_bundle_p
+
+ +
+
+proc chpl_comm_on_bundle_task_bundle(bundle: chpl_comm_on_bundle_p) : chpl_task_bundle_p
+
+ +
+
+proc chpl_rt_buildLocaleID(node: chpl_nodeID_t, subloc: chpl_sublocID_t) : chpl_localeID_t
+
+ +
+
+proc chpl_rt_nodeFromLocaleID(in loc: chpl_localeID_t) : chpl_nodeID_t
+
+ +
+
+proc chpl_rt_sublocFromLocaleID(in loc: chpl_localeID_t) : chpl_sublocID_t
+
+ +
+
+proc chpl_buildLocaleID(node: chpl_nodeID_t, subloc: chpl_sublocID_t)
+
+ +
+
+proc chpl_nodeFromLocaleID(in loc: chpl_localeID_t)
+
+ +
+
+proc chpl_sublocFromLocaleID(in loc: chpl_localeID_t)
+
+ +
+
+proc chpl_comm_execute_on(loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, arg_size: c_size_t)
+
+ +
+
+proc chpl_comm_execute_on_fast(loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl_comm_execute_on_nb(loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl_comm_taskCallFTable(fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t, subloc_id: int) : void
+
+ +
+
+proc chpl_ftable_call(fn: int, args: chpl_comm_on_bundle_p) : void
+
+ +
+
+proc chpl_ftable_call(fn: int, args: chpl_task_bundle_p) : void
+
+ +
+
+proc chpl_task_addTask(fn: int, args: chpl_task_bundle_p, args_size: c_size_t, subloc_id: int)
+
+ +
+
+proc chpl_task_yield()
+
+

Warning

+

‘chpl_task_yield’ is deprecated, please use ‘currentTask.yieldExecution’ instead

+
+
+ +
+
+proc chpl_taskAddBegin(subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl_taskAddCoStmt(subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t)
+
+ +
+
+proc chpl__initCopy(initial: chpl_localeID_t, definedConst: bool) : chpl_localeID_t
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocaleModelHelpSetup.html b/docs/internal/modules/internal/LocaleModelHelpSetup.html new file mode 100644 index 000000000..735d5b0ca --- /dev/null +++ b/docs/internal/modules/internal/LocaleModelHelpSetup.html @@ -0,0 +1,293 @@ + + + + + + + LocaleModelHelpSetup — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocaleModelHelpSetup

+

Usage

+
use LocaleModelHelpSetup;
+
+
+

or

+
import LocaleModelHelpSetup;
+
+
+
+
+config param debugLocaleModel = false
+
+ +
+
+proc chpl_nodeID : chpl_nodeID_t
+
+ +
+
+record chpl_root_locale_accum
+
+
+var nPUsPhysAcc : atomic(int)
+
+ +
+
+var nPUsPhysAll : atomic(int)
+
+ +
+
+var nPUsLogAcc : atomic(int)
+
+ +
+
+var nPUsLogAll : atomic(int)
+
+ +
+
+var maxTaskPar : atomic(int)
+
+ +
+
+proc init()
+
+ +
+
+proc init=(other: chpl_root_locale_accum)
+
+ +
+
+proc ref accum(loc: locale)
+
+ +
+
+proc setRootLocaleValues(dst: borrowed(RootLocale))
+
+ +
+ +
+
+proc helpSetupRootLocaleFlat(dst: borrowed(RootLocale))
+
+ +
+
+proc helpSetupRootLocaleNUMA(dst: borrowed(RootLocale))
+
+ +
+
+proc helpSetupRootLocaleAPU(dst: borrowed(RootLocale))
+
+ +
+
+proc helpSetupRootLocaleGPU(dst: borrowed(RootLocale))
+
+ +
+
+proc helpSetupLocaleFlat(dst: borrowed(LocaleModel), out local_name: string)
+
+ +
+
+proc helpSetupLocaleNUMA(dst: borrowed(LocaleModel), out local_name: string, numSublocales, type NumaDomain)
+
+ +
+
+proc helpSetupLocaleAPU(dst: borrowed(LocaleModel), out local_name: string, out numSublocales, type CPULocale, type GPULocale)
+
+ +
+
+proc helpSetupLocaleGPU(dst: borrowed(LocaleModel), out local_name: string, numSublocales: int, type GPULocale)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/LocalesArray.html b/docs/internal/modules/internal/LocalesArray.html new file mode 100644 index 000000000..849aa7ced --- /dev/null +++ b/docs/internal/modules/internal/LocalesArray.html @@ -0,0 +1,203 @@ + + + + + + + LocalesArray — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

LocalesArray

+

Usage

+
use LocalesArray;
+
+
+

or

+
import LocalesArray;
+
+
+
+
+const ref Locales = (rootLocale._instance : borrowed(RootLocale?))!.getDefaultLocaleArray()
+
+ +
+
+const LocaleSpace = Locales.domain
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/MemConsistency.html b/docs/internal/modules/internal/MemConsistency.html new file mode 100644 index 000000000..b19ff055c --- /dev/null +++ b/docs/internal/modules/internal/MemConsistency.html @@ -0,0 +1,352 @@ + + + + + + + MemConsistency — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MemConsistency

+

Usage

+
use MemConsistency;
+
+
+

or

+
import MemConsistency;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+type memory_order
+
+ +
+
+proc _defaultOf(type t: memory_order)
+
+ +
+
+operator memory_order.==(a: memory_order, b: memory_order) : bool
+
+ +
+
+operator memory_order.!=(a: memory_order, b: memory_order) : bool
+
+ +
+
+operator memory_order.=(ref lhs: memory_order, rhs: memory_order)
+
+ +
+
+proc memory_order.serialize(writer, ref serializer) throws
+
+ +
+
+const memory_order_relaxed : memory_order
+
+ +
+
+const memory_order_consume : memory_order
+
+ +
+
+const memory_order_acquire : memory_order
+
+ +
+
+const memory_order_release : memory_order
+
+ +
+
+const memory_order_acq_rel : memory_order
+
+ +
+
+const memory_order_seq_cst : memory_order
+
+ +
+
+enum memoryOrder { seqCst, acqRel, release, acquire, relaxed }
+
+
+enum constant seqCst
+
+ +
+
+enum constant acqRel
+
+ +
+
+enum constant release
+
+ +
+
+enum constant acquire
+
+ +
+
+enum constant relaxed
+
+ +
+ +
+
+proc readableOrder(param order: memoryOrder) param
+
+ +
+
+proc c_memory_order(param order: memoryOrder)
+
+ +
+
+proc chpl_rmem_consist_release()
+
+ +
+
+proc chpl_rmem_consist_acquire()
+
+ +
+
+proc chpl_rmem_consist_maybe_release(order: memory_order)
+
+ +
+
+proc chpl_rmem_consist_maybe_release(param order: memoryOrder)
+
+ +
+
+proc chpl_rmem_consist_maybe_acquire(order: memory_order)
+
+ +
+
+proc chpl_rmem_consist_maybe_acquire(param order: memoryOrder)
+
+ +
+
+proc chpl_rmem_consist_fence(order: memory_order)
+
+ +
+
+proc chpl_rmem_consist_fence(param order: memoryOrder)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/MemTracking.html b/docs/internal/modules/internal/MemTracking.html new file mode 100644 index 000000000..0460ec0ff --- /dev/null +++ b/docs/internal/modules/internal/MemTracking.html @@ -0,0 +1,304 @@ + + + + + + + MemTracking — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MemTracking

+

Usage

+
use MemTracking;
+
+
+

or

+
import MemTracking;
+
+
+
+
+config const memTrack : bool = false
+
+

Warning

+

The variable ‘memTrack’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memStats : bool = false
+
+

Warning

+

The variable ‘memStats’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memLeaksByType : bool = false
+
+

Warning

+

The variable ‘memLeaksByType’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memLeaks : bool = false
+
+

Warning

+

The variable ‘memLeaks’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memMax : uint = 0
+
+

Warning

+

The variable ‘memMax’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memThreshold : uint = 0
+
+

Warning

+

The variable ‘memThreshold’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memLog : string
+
+

Warning

+

The variable ‘memLog’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memLeaksLog : string
+
+

Warning

+

The variable ‘memLeaksLog’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+config const memLeaksByDesc : string
+
+

Warning

+

The variable ‘memLeaksByDesc’ is unstable and its interface is subject to change in the future

+
+

Causes the contents of the memory tracking array to be printed at the end +of the program. +Entries remaining in the memory tracking array represent leaked memory, +because they are tracked allocations with no corresponding free.

+

The dump is performed only if the –memLeaksByDesc option is present and has +a string argument.

+
+

–memLeaksByDesc=”” causes all memory records to be printed. Same as –memLeaks. +–memLeaksByDesc=”<alloc-type-string>” causes only those memory records

+
+

matching the given <alloc-type-string> to be printed.

+
+
+

For example, –memLeaksByDesc=”string copy data” causes only string copy +data leaks to be printed.

+
+ +
+
+const cMemMax = memMax.safeCast(c_size_t)
+
+ +
+
+const cMemThreshold = memThreshold.safeCast(c_size_t)
+
+ +
+
+export proc chpl_memTracking_returnConfigVals(ref ret_memTrack: bool, ref ret_memStats: bool, ref ret_memLeaksByType: bool, ref ret_memLeaksByDesc: c_ptrConst(c_char), ref ret_memLeaks: bool, ref ret_memMax: c_size_t, ref ret_memThreshold: c_size_t, ref ret_memLog: c_ptrConst(c_char), ref ret_memLeaksLog: c_ptrConst(c_char))
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/NetworkAtomicTypes.html b/docs/internal/modules/internal/NetworkAtomicTypes.html new file mode 100644 index 000000000..a466fbe51 --- /dev/null +++ b/docs/internal/modules/internal/NetworkAtomicTypes.html @@ -0,0 +1,193 @@ + + + + + + + NetworkAtomicTypes — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NetworkAtomicTypes

+

Usage

+
use NetworkAtomicTypes;
+
+
+

or

+
import NetworkAtomicTypes;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/NetworkAtomics.html b/docs/internal/modules/internal/NetworkAtomics.html new file mode 100644 index 000000000..cb550129d --- /dev/null +++ b/docs/internal/modules/internal/NetworkAtomics.html @@ -0,0 +1,228 @@ + + + + + + + NetworkAtomics — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NetworkAtomics

+

Usage

+
use NetworkAtomics;
+
+
+

or

+
import NetworkAtomics;
+
+
+
+
+record RAtomicBool : writeSerializable
+
+
+proc type valType type
+
+ +
+
+proc valType type
+
+ +
+
+var _v : int(64)
+
+ +
+ +
+
+record RAtomicT : writeSerializable
+
+
+type valType
+
+ +
+
+var _v : valType
+
+ +
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/OwnedObject.html b/docs/internal/modules/internal/OwnedObject.html new file mode 100644 index 000000000..2d10aca9f --- /dev/null +++ b/docs/internal/modules/internal/OwnedObject.html @@ -0,0 +1,409 @@ + + + + + + + OwnedObject — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

OwnedObject

+

Usage

+
use OwnedObject;
+
+
+

or

+
import OwnedObject;
+
+
+
+
+record _owned : writeSerializable, readDeserializable
+

owned manages the deletion of a class instance assuming +that this owned is the only thing responsible for +managing the lifetime of the class instance.

+
+
+type chpl_t
+
+ +
+
+var chpl_p : __primitive("to nilable class", chpl_t)
+
+ +
+ +
+
+proc _owned.init(type chpl_t)
+
+ +
+
+proc _owned.init(p: borrowed)
+
+ +
+
+proc _owned.init(p: unmanaged)
+
+ +
+
+proc _owned.init(p: ?T)   where isClass(T) == false && isSubtype(T, _owned) == false && isIterator(p) == false
+
+ +
+
+proc _owned.init=(ref src: _owned)
+

Copy-initializer. Creates a new owned that takes over ownership +from src. src will refer to nil after this call.

+
+ +
+
+proc _owned.init=(src: shared)
+
+ +
+
+proc _owned.init=(src: borrowed)
+
+ +
+
+proc _owned.init=(src: unmanaged)
+
+ +
+
+proc _owned.init=(src: _nilType)
+
+ +
+
+proc _owned.init(ref src: _owned)
+
+ +
+
+proc type _owned.adopt(source)
+
+ +
+
+proc type _owned.adopt(in obj: unmanaged)
+

Starts managing the argument class instance obj +using the owned memory management strategy. +The result type preserves nilability of the argument type.

+

It is an error to directly delete the class instance +after passing it to owned.adopt().

+
+ +
+
+proc type _owned.release(source)
+
+ +
+
+proc type _owned.release(ref obj: owned)
+

Empty obj so that it manages nil and +return the instance previously managed by this owned object.

+

If the argument is nil it returns nil.

+
+ +
+
+proc _owned.deinit()
+

The deinitializer for owned will destroy the class +instance it manages when the owned goes out of scope.

+
+ +
+
+proc _owned.borrow()
+

Return the object managed by this owned without impacting its +lifetime at all. It is an error to use the value returned by this function +after the owned goes out of scope or deletes the contained class +instance for another reason, such as with = or owned.adopt. In some +cases such errors are caught at compile-time.

+
+ +
+
+operator =(ref lhs: _owned, ref rhs: _owned)   where !(isNonNilableClass(lhs) && isNilableClass(rhs))
+

Assignment between two owned transfers ownership of the object +managed by rhs to lhs. This is done by setting rhs to nil and +then setting lhs to point to the object that rhs managed before, +if any. After that, it deletes the object previously managed by lhs, +if any.

+
+ +
+
+operator =(ref lhs: _owned, rhs: _nilType)
+
+ +
+
+operator <=>(ref lhs: _owned, ref rhs: lhs.type)
+

Swap two owned objects.

+
+ +
+
+proc chpl__initCopy(ref src: _owned, definedConst: bool)
+
+ +
+
+proc chpl__autoCopy(ref src: _owned, definedConst: bool)
+
+ +
+
+proc chpl__autoDestroy(ref x: _owned)
+
+ +
+
+proc _owned.serialize(writer, ref serializer) throws
+
+ +
+
+proc _owned._readWriteHelper(f) throws
+
+ +
+
+proc _owned.deserialize(reader, ref deserializer) throws
+
+ +
+
+operator :(in x: owned(class), type t: owned(class?))   where isSubtype(x.chpl_t, _to_nonnil(t.chpl_t))
+
+ +
+
+operator :(in x: owned(class?), type t: owned(class?))   where isSubtype(x.chpl_t, t.chpl_t)
+
+ +
+
+operator :(in x: owned(class), type t: owned(class))   where isSubtype(x.chpl_t, t.chpl_t)
+
+ +
+
+operator :(in x: owned(class?), type t: owned(class)) throws  where isSubtype(_to_nonnil(x.chpl_t), t.chpl_t)
+
+ +
+
+operator :(ref x: owned(class?), type t: owned(class)) throws  where isProperSubtype(t.chpl_t, _to_nonnil(x.chpl_t))
+
+ +
+
+operator :(ref x: owned(class), type t: owned(class)) throws  where isProperSubtype(t.chpl_t, x.chpl_t)
+
+ +
+
+operator :(ref x: owned(class?), type t: owned(class?))   where isProperSubtype(t.chpl_t, x.chpl_t)
+
+ +
+
+operator :(ref x: owned(class), type t: owned(class?))   where isProperSubtype(_to_nonnil(t.chpl_t), x.chpl_t)
+
+ +
+
+operator :(x: _nilType, type t: _owned)
+
+ +
+
+proc postfix!(const ref x: _owned)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/PrintModuleInitOrder.html b/docs/internal/modules/internal/PrintModuleInitOrder.html new file mode 100644 index 000000000..6dc8a8611 --- /dev/null +++ b/docs/internal/modules/internal/PrintModuleInitOrder.html @@ -0,0 +1,217 @@ + + + + + + + PrintModuleInitOrder — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

PrintModuleInitOrder

+

Usage

+
use PrintModuleInitOrder;
+
+
+

or

+
import PrintModuleInitOrder;
+
+
+
+
+config const printModuleInitOrder = false
+
+

Warning

+

The variable ‘printModuleInitOrder’ is unstable and its interface is subject to change in the future

+
+
+ +
+
+var moduleInitLevel = 2 : int(32)
+
+ +
+
+proc printModuleInit(s1: chpl_c_string, s2: chpl_c_string, len: int)
+
+ +
+
+proc initPrint()
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/SharedObject.html b/docs/internal/modules/internal/SharedObject.html new file mode 100644 index 000000000..bfed4a16e --- /dev/null +++ b/docs/internal/modules/internal/SharedObject.html @@ -0,0 +1,514 @@ + + + + + + + SharedObject — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

SharedObject

+

Usage

+
use SharedObject;
+
+
+

or

+
import SharedObject;
+
+
+
+
+class ReferenceCount
+
+
+var strongCount : atomic(int)
+
+ +
+
+var totalCount : atomic(int)
+
+ +
+
+proc init()
+
+ +
+
+proc retain()
+
+ +
+
+proc releaseStrong()
+
+ +
+
+proc releaseTotal()
+
+ +
+
+proc tryRetainWeak(ref expected: int)
+

attempt to atomically increment the strong reference count

+
    +
  • if the current strong-count does not match ‘expected’, then ‘expected’ +is updated to whatever the current value is, and ‘false’ is returned

  • +
  • if they do match, the strong-count is incremented, the total-count is +incremented, and ‘true’ is returned.

  • +
+

This method is used to safely upgrade a ‘weak’ to a ‘shared’ +reference. This is done by calling the method in a while-loop that can +either fail if the expected value drops to zero (i.e., the last ‘shared’ +was dropped by someone else during the upgrade attempt), or loop until +the value can be incremented safely (s.t. there are no conflicts +between concurrent upgrades)

+
+ +
+
+proc releaseWeak()
+
+ +
+
+proc incrementWeak()
+
+ +
+ +
+
+record _shared : writeSerializable, readDeserializable
+

shared manages the deletion of a class instance in a way +that supports multiple owners of the class instance.

+

This is currently implemented with task-safe reference counting.

+
+
+type chpl_t
+
+ +
+
+var chpl_p : __primitive("to nilable class", chpl_t)
+
+ +
+
+var chpl_pn : unmanaged(ReferenceCount?)
+
+ +
+ +
+
+proc _shared.init(type chpl_t)
+
+ +
+
+proc _shared.init(p: borrowed)
+
+ +
+
+proc _shared.init(p: unmanaged)
+
+ +
+
+proc _shared.init(p: ?T)   where isClass(T) == false && isSubtype(T, _shared) == false && isIterator(p) == false
+
+ +
+
+proc _shared.init(in take: owned)
+
+ +
+
+proc _shared.init(_private: bool, type t, ref src: _shared)
+

Private move-initializer for use in coercions, +only makes sense when src was already copied in in intent.

+
+ +
+
+proc _shared.init(_private: bool, type t, p, pn)
+

Private initializer for casts. This one increments the reference +count if the stored pointer is not nil.

+
+ +
+
+proc _shared.init(_private: bool, p: unmanaged, pn)
+

Private initializer for casting from weak to shared. +assumes the shared reference count in ‘pn’ has already been incremented

+
+ +
+
+proc _shared.init=(in take: owned)
+
+ +
+
+proc _shared.init=(const ref src: _shared)
+

Copy-initializer. Creates a new shared +that refers to the same class instance as src. +These will share responsibility for managing the instance.

+
+ +
+
+proc _shared.init=(src: borrowed)
+
+ +
+
+proc _shared.init=(src: unmanaged)
+
+ +
+
+proc _shared.init=(src: _nilType)
+
+ +
+
+proc ref _shared.doClear()
+
+ +
+
+proc type _shared.adopt(source)
+
+ +
+
+proc type _shared.adopt(in obj: owned)
+

Changes the memory management strategy of the argument from owned +to shared, taking over the ownership of the argument. +The result type preserves nilability of the argument type. +If the argument is non-nilable, it must be recognized by the compiler +as an expiring value.

+
+ +
+
+proc type _shared.adopt(in obj: unmanaged)
+

Starts managing the argument class instance obj +using the shared memory management strategy. +The result type preserves nilability of the argument type.

+

It is an error to directly delete the class instance +after passing it to shared.adopt().

+
+ +
+
+proc ref _shared.deinit()
+

The deinitializer for shared will destroy the class +instance once there are no longer any copies of this +shared that refer to it.

+
+ +
+
+proc _shared.borrow()
+

Return the object managed by this shared without +impacting its lifetime at all. It is an error to use the +value returned by this function after the last shared +goes out of scope or deletes the contained class instance +for another reason, including calls to +=, or shared.retain when this is the last shared +referring to the instance. +In some cases such errors are caught at compile-time.

+
+ +
+
+proc _shared.downgrade()
+
+

Warning

+

The weak type is experimental; expect this method to change in the future.

+
+

Create a weak reference to this object

+
+ +
+
+operator =(ref lhs: _shared, rhs: _shared)   where !(isNonNilableClass(lhs) && isNilableClass(rhs))
+

Assign one shared to another. +Deletes the object managed by lhs if there are +no other shared referring to it. On return, +lhs will refer to the same object as rhs.

+
+ +
+
+operator =(ref lhs: _shared, in rhs: owned)
+
+ +
+
+operator =(ref lhs: shared, rhs: _nilType)
+
+ +
+
+operator <=>(ref lhs: _shared, ref rhs: _shared)
+

Swap two shared objects.

+
+ +
+
+proc chpl__autoDestroy(ref x: _shared)
+
+ +
+
+proc ref _shared.deserialize(reader, ref deserializer) throws
+
+ +
+
+proc _shared.serialize(writer, ref serializer) throws
+
+ +
+
+proc _shared._readWriteHelper(f) throws
+
+ +
+
+operator :(const ref x: _shared, type t: borrowed)   where isSubtype(t, x.chpl_t)
+
+ +
+
+operator :(in x: shared(class), type t: shared(class?))   where isSubtype(x.chpl_t, t.chpl_t: class)
+
+ +
+
+operator :(in x: shared(class?), type t: shared(class?))   where isSubtype(x.chpl_t, t.chpl_t)
+
+ +
+
+operator :(in x: shared(class), type t: shared(class))   where isSubtype(x.chpl_t, t.chpl_t)
+
+ +
+
+operator :(in x: shared(class?), type t: shared(class)) throws  where isSubtype(x.chpl_t: class, t.chpl_t)
+
+ +
+
+operator :(const ref x: shared(class?), type t: shared(class)) throws  where isProperSubtype(t.chpl_t, x.chpl_t: class)
+
+ +
+
+operator :(const ref x: shared(class), type t: shared(class)) throws  where isProperSubtype(t.chpl_t, x.chpl_t)
+
+ +
+
+operator :(const ref x: shared(class?), type t: shared(class?))   where isProperSubtype(t.chpl_t, x.chpl_t)
+
+ +
+
+operator :(const ref x: shared(class), type t: shared(class?))   where isProperSubtype(t.chpl_t, x.chpl_t: class?)
+
+ +
+
+operator :(x: _nilType, type t: _shared)
+
+ +
+
+proc postfix!( x: _shared)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/String.html b/docs/internal/modules/internal/String.html new file mode 100644 index 000000000..a473c7863 --- /dev/null +++ b/docs/internal/modules/internal/String.html @@ -0,0 +1,2011 @@ + + + + + + + String — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

String

+

Usage

+
use String;
+
+
+

or

+
import String;
+
+
+

Submodules

+ +
+
+type string
+
+ +

supports the following methods:

+
+
+config param useCachedNumCodepoints = true
+
+ +
+
+record byteIndex : writeSerializable
+
+
+var _bindex : int
+
+ +
+
+proc init()
+
+ +
+
+proc init(i: int)
+
+ +
+
+proc init=(other: byteIndex)
+
+ +
+
+proc init=(i: int)
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+operator :(val: byteIndex, type t: string)
+
+ +
+ +
+
+record codepointIndex : writeSerializable
+
+
+var _cpindex : int
+
+ +
+
+proc init()
+
+ +
+
+proc init(i: int)
+
+ +
+
+proc init=(i: int)
+
+ +
+
+proc init=(cpi: codepointIndex)
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+operator :(val: codepointIndex, type t: string)
+
+ +
+ +
+
+proc chpl_build_bounded_range(low: byteIndex, high: byteIndex)
+
+ +
+
+proc chpl_build_bounded_range(low: codepointIndex, high: codepointIndex)
+
+ +
+
+proc chpl_build_low_bounded_range(low: byteIndex)
+
+ +
+
+proc chpl_build_low_bounded_range(low: codepointIndex)
+
+ +
+
+proc chpl_build_high_bounded_range(high: byteIndex)
+
+ +
+
+proc chpl_build_high_bounded_range(high: codepointIndex)
+
+ +
+
+proc chpl__rangeStrideType(type idxType: byteIndex) type
+
+ +
+
+proc chpl__rangeStrideType(type idxType: codepointIndex) type
+
+ +
+
+proc chpl__rangeUnsignedType(type idxType: byteIndex) type
+
+ +
+
+proc chpl__rangeUnsignedType(type idxType: codepointIndex) type
+
+ +
+
+proc chpl__idxToInt(i: byteIndex)
+
+ +
+
+proc chpl__idxToInt(i: codepointIndex)
+
+ +
+
+proc chpl__intToIdx(type idxType: byteIndex, i: int)
+
+ +
+
+proc chpl__intToIdx(type idxType: codepointIndex, i: int)
+
+ +
+
+operator byteIndex.>(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.>(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.>(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.>(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.>(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.>(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.+(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.+(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.+(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.+(x: int, y: codepointIndex)
+
+ +
+
+operator +(x: bufferType, y: byteIndex)
+
+ +
+
+operator byteIndex.-(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.-(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.-(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.-(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.<(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.<(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.<(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.<(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.<(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.<(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.>=(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.>=(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.>=(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.>=(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.>=(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.>=(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.<=(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.<=(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.<=(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.<=(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.<=(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.<=(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.==(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.==(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.==(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.==(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.==(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.==(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.!=(x: byteIndex, y: byteIndex)
+
+ +
+
+operator codepointIndex.!=(x: codepointIndex, y: codepointIndex)
+
+ +
+
+operator byteIndex.!=(x: byteIndex, y: int)
+
+ +
+
+operator codepointIndex.!=(x: codepointIndex, y: int)
+
+ +
+
+operator byteIndex.!=(x: int, y: byteIndex)
+
+ +
+
+operator codepointIndex.!=(x: int, y: codepointIndex)
+
+ +
+
+operator byteIndex.!(x: byteIndex)
+
+ +
+
+operator codepointIndex.!(x: codepointIndex)
+
+ +
+
+proc _cond_test(x: byteIndex)
+
+ +
+
+proc _cond_test(x: codepointIndex)
+
+ +
+
+proc type string.createBorrowingBuffer(x: string) : string
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new string which borrows the internal buffer of another string. If +the buffer is freed before the string returned from this function, accessing +it is undefined behavior.

+
+
Arguments:
+

x : string – Object to borrow the buffer from

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createBorrowingBuffer(x: c_ptr(?t), length = strLen(x)) : string throws
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new string which borrows the memory allocated for a c_ptr. If +the buffer is freed before the string returned from this function, accessing +it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to borrow from

  • +
  • length : int – Length of the string stored in x in bytes, excluding the optional +terminating null byte.

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createBorrowingBuffer(x: c_ptrConst(?t), length = strLen(x)) : string throws
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new string which borrows the memory allocated for a c_ptrConst. If +the buffer is freed before the string returned from this function, accessing +it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8)) – The buffer to borrow from

  • +
  • length : int – Length of the string stored in x in bytes, excluding the optional +terminating null byte.

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc chpl_createStringWithLiteral(buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int, numCodepoints: int) : string
+
+ +
+
+proc type string.createBorrowingBuffer(x: c_ptr(?t), length: int, size: int) : string throws
+
+

Warning

+

‘createBorrowingBuffer’ is unstable and may change in the future

+
+

Creates a new string which borrows the memory allocated for a c_ptr. If +the buffer is freed before the string returned from this function, +accessing it is undefined behavior.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to borrow from

  • +
  • length : int – Length of the string stored in x in bytes, excluding the +optional terminating null byte.

  • +
  • size – Size of memory allocated for x in bytes

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createBorrowingBuffer(x: chpl_c_string, length = x.size) : string throws
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘string.createBorrowingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc type string.createAdoptingBuffer(x: c_ptr(?t), length = strLen(x)) : string throws
+

Creates a new string which takes ownership of the memory allocated for a +c_ptr. The buffer will be freed when the string is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to take ownership of

  • +
  • length : int – Length of the string stored in x in bytes, excluding the optional +terminating null byte.

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters. In that event, this function does not free x; that is +the caller’s responsibility.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createAdoptingBuffer(x: chpl_c_string, length = x.size) : string throws
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘string.createAdoptingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+proc type string.createAdoptingBuffer(x: c_ptrConst(?t), length = strLen(x)) : string throws
+

Creates a new string which takes ownership of the memory allocated for a +c_ptrConst. The buffer will be freed when the string +is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8)) – The buffer to take ownership of

  • +
  • length : int – Length of the string stored in x in bytes, excluding the optional +terminating null byte.

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters. In that event, this function does not free x; that is the +caller’s responsibility.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createAdoptingBuffer(x: c_ptr(?t), length: int, size: int) : string throws
+

Creates a new string which takes ownership of the memory allocated for a +c_ptr. The buffer will be freed when the string is deinitialized.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to take ownership of

  • +
  • length : int – Length of the string stored in x in bytes, excluding the +optional terminating null byte.

  • +
  • size – Size of memory allocated for x in bytes

  • +
+
+
Throws:
+

A DecodeError: if x contains non-UTF-8 +characters. In that event, this function does not free x; that is the +caller’s responsibility.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createCopyingBuffer(x: c_ptrConst(?t), length = strLen(x), policy = decodePolicy.strict) : string throws
+

Creates a new string by creating a copy of the memory allocated for a c_ptrConst.

+
+
Arguments:
+
    +
  • x : c_ptrConst(uint(8)) or c_ptrConst(int(8)) – The buffer to copy

  • +
  • length : int – Length of x in bytes, excluding the optional terminating null byte.

  • +
  • policy

      +
    • decodePolicy.strict raises an error

    • +
    • decodePolicy.replace replaces the malformed character with +UTF-8 replacement character

    • +
    • decodePolicy.drop drops the data silently

    • +
    • decodePolicy.escape escapes each illegal byte with private +use codepoints

    • +
    +

  • +
+
+
Throws:
+

A DecodeError: if decodePolicy.strict is +passed to the policy argument and x contains non-UTF-8 characters.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createCopyingBuffer(x: c_ptr(?t), length = strLen(x), size = length + 1, policy = decodePolicy.strict) : string throws
+

Creates a new string by creating a copy of a buffer.

+
+
Arguments:
+
    +
  • x : c_ptr(uint(8)) or c_ptr(int(8)) – The buffer to copy

  • +
  • length : int – Length of the string stored in x in bytes, excluding the +optional terminating null byte.

  • +
  • size : int – Size of memory allocated for x in bytes. This argument is +ignored by this function.

  • +
  • policydecodePolicy.strict raises an error, decodePolicy.replace +replaces the malformed character with UTF-8 replacement +character, decodePolicy.drop drops the data silently, +decodePolicy.escape escapes each illegal byte with private +use codepoints

  • +
+
+
Throws:
+

A DecodeError: if decodePolicy.strict is +passed to the policy argument and x contains non-UTF-8 characters.

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc type string.createCopyingBuffer(x: chpl_c_string, length = x.size, policy = decodePolicy.strict) : string throws
+
+

Warning

+

the type ‘c_string’ is deprecated; please use the variant of ‘string.createCopyingBuffer’ that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+record _string : writeSerializable
+
+
+var buffLen : int = 0
+
+ +
+
+var buffSize : int = 0
+
+ +
+
+var cachedNumCodepoints : int = 0
+
+ +
+
+var buff : bufferType = nil
+
+ +
+
+var isOwned : bool = true
+
+ +
+
+var hasEscapes : bool = false
+
+ +
+
+var locale_id = chpl_nodeID
+
+ +
+
+proc init()
+
+ +
+
+proc init=(s: string)
+
+ +
+
+proc ref deinit()
+
+ +
+
+proc chpl__serialize()
+
+ +
+
+proc type chpl__deserialize(data)
+
+ +
+
+proc isASCII()
+
+ +
+
+proc byteIndices
+
+ +
+
+proc _cpIndexLenHelpNoAdjustment(ref start: int)
+
+ +
+
+iter _cpIndexLen(start = 0: byteIndex)
+

Iterates over the string Unicode character by Unicode character, +and includes the byte index and byte length of each character. +Skip characters that begin prior to the specified starting byte index. +Assume we may accidentally start in the middle of a multibyte character, +but the string is correctly encoded UTF-8.

+
+ +
+
+iter _indexLen(start = 0: byteIndex)
+

Iterates over the string Unicode character by Unicode character, +and returns the byte index and byte length of each character. +Skip characters that begin prior to the specified starting byte index. +Assume we may accidentally start in the middle of a multibyte character, +but the string is correctly encoded UTF-8.

+
+ +
+
+proc substring(i: int)
+
+ +
+
+proc substring(r: range)
+
+ +
+
+proc serialize(writer, ref serializer) throws
+
+ +
+
+proc doSplitWSUTF8Help(maxsplit: int, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex)
+
+ +
+
+iter doSplitWSUTF8(maxsplit: int)
+
+ +
+
+proc doSearchUTF8(pattern: string, indices: range(?), param count: bool, param fromLeft: bool = true)
+
+ +
+
+proc join(const ref x: [] string) : string
+
+ +
+
+proc join(const ref x)   where isTuple(x)
+
+ +
+
+proc join(ir: _iteratorRecord) : string
+
+ +
+
+proc capitalize() : string
+
+
Returns:
+

A new string with the first character in uppercase (if it is a +case character), and all other case characters in lowercase. +Uncased characters are copied with no changes.

+
+
+
+ +
+ +
+
+proc const string.size : int
+
+
Returns:
+

The number of codepoints in the string.

+
+
+
+ +
+
+proc string.indices : range
+
+
Returns:
+

The indices that can be used to index into the string +(i.e., the range 0..<this.size)

+
+
+
+ +
+
+proc string.numBytes : int
+
+
Returns:
+

The number of bytes in the string.

+
+
+
+ +
+
+proc const string.numCodepoints : int
+
+
Returns:
+

The number of codepoints in the string, assuming the +string is correctly-encoded UTF-8.

+
+
+
+ +
+
+proc string.localize() : string
+
+

Warning

+

string.localize() is unstable and may change in a future release

+
+

Gets a version of the string that is on the currently +executing locale.

+
+
Returns:
+

A shallow copy if the string is already on the +current locale, otherwise a deep copy is performed.

+
+
+
+ +
+
+proc string.c_str() : c_ptrConst(c_char)
+
+

Warning

+

‘string.c_str()’ has moved to ‘CTypes’. Please ‘use CTypes’ to access ‘c_str

+
+

Get a c_ptrConst(c_char) from a string. The returned +c_ptrConst shares the buffer with the string.

+
+

Warning

+

This can only be called safely on a string whose home is +the current locale. This property can be enforced by calling +string.localize() before string.c_str(). If the +string is remote, the program will halt.

+
+

For example:

+
var my_string = "Hello!";
+on different_locale {
+  printf("%s", my_string.localize().c_str());
+}
+
+
+
+
Returns:
+

A c_ptrConst(c_char) that points to the underlying buffer used by this +string. The returned c_ptrConst(c_char) is only valid when used +on the same locale as the string.

+
+
+
+ +
+
+proc string.encode(policy = encodePolicy.pass) : bytes
+

Returns a bytes from the given string. If the +string contains some escaped non-UTF8 bytes, policy argument determines +the action.

+
+
Arguments:
+

policyencodePolicy.pass directly copies the (potentially escaped) +data, encodePolicy.unescape recovers the escaped bytes +back.

+
+
Returns:
+

bytes

+
+
+
+ +
+
+iter string.items() : string
+

Iterates over the string character by character.

+

For example:

+
var str = "abcd";
+for c in str.items() {
+  writeln(c);
+}
+
+
+

Output:

+
a
+b
+c
+d
+
+
+
+ +
+
+iter string.these() : string
+

Iterates over the string character by character, yielding 1-codepoint +strings. (A synonym for string.items)

+

For example:

+
var str = "abcd";
+for c in str {
+  writeln(c);
+}
+
+
+

Output:

+
a
+b
+c
+d
+
+
+
+ +
+
+iter string.chpl_bytes() : uint(8)
+

Iterates over the string byte by byte.

+
+ +
+
+iter string.codepoints() : int(32)
+

Iterates over the string Unicode character by Unicode character.

+
+ +
+
+proc string.toByte() : uint(8)
+
+
Returns:
+

The value of a single-byte string as an integer.

+
+
+
+ +
+
+proc string.byte(i: int) : uint(8)
+
+
Returns:
+

The value of the i th byte as an integer.

+
+
+
+ +
+
+proc string.toCodepoint() : int(32)
+
+
Returns:
+

The value of a single-codepoint string as an integer.

+
+
+
+ +
+
+proc string.codepoint(i: int) : int(32)
+
+
Returns:
+

The value of the i th multibyte character as an integer.

+
+
+
+ +
+
+proc string.this(i: byteIndex) : string
+

Return the codepoint starting at the i th byte in the string

+
+
Returns:
+

A new string with the complete multibyte character starting at the +specified byte index from 0..#string.numBytes

+
+
+
+ +
+
+proc string.this(i: codepointIndex) : string
+

Return the i th codepoint in the string. (A synonym for string.item)

+
+
Returns:
+

A new string with the complete multibyte character starting at the +specified codepoint index from 0..#string.numCodepoints

+
+
+
+ +
+
+proc string.this(i: int) : string
+

Return the i th codepoint in the string. (A synonym for string.item)

+
+
Returns:
+

A new string with the complete multibyte character starting at the +specified codepoint index from 1..string.numCodepoints

+
+
+
+ +
+
+proc string.item(i: codepointIndex) : string
+

Return the i th codepoint in the string

+
+
Returns:
+

A new string with the complete multibyte character starting at the +specified codepoint index from 1..string.numCodepoints

+
+
+
+ +
+
+proc string.item(i: int) : string
+

Return the i th codepoint in the string

+
+
Returns:
+

A new string with the complete multibyte character starting at the +specified codepoint index from 0..#string.numCodepoints

+
+
+
+ +
+
+proc string.this(r: range(?)) : string throws  where r.idxType == byteIndex
+

Slice a string. Halts if r is non-empty and not completely inside the +range 0..<string.size when compiled with –checks. –fast +disables this check.

+
+
Arguments:
+

r – range of the indices the new string should be made from

+
+
Throws:
+

throws a CodepointSplitError: if slicing results +in splitting a multi-byte codepoint.

+
+
Returns:
+

A new string that is a substring within 0..<string.size. If +the length of r is zero, an empty string is returned.

+
+
+
+ +
+
+proc string.this(r: range(?)) : string  where r.idxType != byteIndex
+
+ +
+
+proc string.isEmpty() : bool
+
+
Returns:
+

    +
  • true – when the string is empty

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.startsWith(patterns: string ...) : bool
+
+
Arguments:
+

patterns – A varargs list of strings to match against.

+
+
Returns:
+

    +
  • true – when the string begins with one or more of the patterns

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.endsWith(patterns: string ...) : bool
+
+
Arguments:
+

patterns – A varargs list of strings to match against.

+
+
Returns:
+

    +
  • true – when the string ends with one or more of the patterns

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.find(pattern: string, indices: range(?) = this.byteIndices: range(byteIndex)) : byteIndex
+
+
Arguments:
+
    +
  • pattern – the string to search for

  • +
  • indices – an optional range defining the substring to search within, +default is the whole string. Halts if the range is not +within 0..<string.size

  • +
+
+
Returns:
+

the index of the first occurrence of pattern within a +string, or -1 if the pattern is not in the string.

+
+
+
+ +
+
+proc string.rfind(pattern: string, indices: range(?) = this.byteIndices: range(byteIndex)) : byteIndex
+
+
Arguments:
+
    +
  • pattern – the string to search for

  • +
  • indices – an optional range defining the substring to search within, +default is the whole string. Halts if the range is not +within 0..<string.size

  • +
+
+
Returns:
+

the index of the first occurrence from the right of pattern +within a string, or -1 if the pattern is not in the string.

+
+
+
+ +
+
+proc string.count(pattern: string, indices: range(?) = this.indices) : int
+
+
Arguments:
+
    +
  • pattern – the string to search for

  • +
  • indices – an optional range defining the substring to search within, +default is the whole string. Halts if the range is not +within 0..<string.size

  • +
+
+
Returns:
+

the number of times pattern occurs in the string

+
+
+
+ +
+
+proc string.replace(pattern: string, replacement: string, count: int = -1) : string
+
+
Arguments:
+
    +
  • pattern – the string to search for

  • +
  • replacement – the string to replace pattern with

  • +
  • count – an optional integer specifying the number of replacements to +make, values less than zero will replace all occurrences

  • +
+
+
Returns:
+

a copy of the string where replacement replaces pattern up +to count times

+
+
+
+ +
+
+iter string.split(sep: string, maxsplit: int = -1, ignoreEmpty: bool = false) : string
+

Splits the string on sep yielding the substring between each +occurrence, up to maxsplit times.

+
+
Arguments:
+
    +
  • sep – The delimiter used to break the string into chunks.

  • +
  • maxsplit – The number of times to split the string, negative values +indicate no limit.

  • +
  • ignoreEmpty

      +
    • +
      When true – Empty strings will not be yielded,

      and will not count towards maxsplit

      +
      +
      +
    • +
    • +
      When false – Empty strings will be yielded when

      sep occurs multiple times in a row.

      +
      +
      +
    • +
    +

  • +
+
+
+
+ +
+
+iter string.split(maxsplit: int = -1) : string
+

Works as above, but uses runs of whitespace as the delimiter.

+
+
Arguments:
+

maxsplit – The number of times to split the string, negative values +indicate no limit.

+
+
+
+ +
+
+proc string.join(const ref x: string ...) : string
+

Returns a new string, which is the concatenation of all of +the string passed in with the contents of the method +receiver inserted between them.

+
var myString = "|".join("a","10","d");
+writeln(myString); // prints: "a|10|d"
+
+
+
+
Arguments:
+

xstring values to be joined

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc string.join(const ref x) : string
+

Returns a new string, which is the concatenation of all of +the string passed in with the contents of the method +receiver inserted between them.

+
var tup = ("a","10","d");
+var myJoinedTuple = "|".join(tup);
+writeln(myJoinedTuple); // prints: "a|10|d"
+
+var myJoinedArray = "|".join(["a","10","d"]);
+writeln(myJoinedArray); // prints: "a|10|d"
+
+
+
+
Arguments:
+

x – An array or tuple of string values to be joined

+
+
Returns:
+

A new string

+
+
+
+ +
+
+proc string.strip(chars: string = " \t\r\n", leading = true, trailing = true) : string
+
+
Arguments:
+
    +
  • chars – A string containing each character to remove. +Defaults to “ \t\r\n”.

  • +
  • leading – Indicates if leading occurrences should be removed. +Defaults to true.

  • +
  • trailing – Indicates if trailing occurrences should be removed. +Defaults to true.

  • +
+
+
Returns:
+

A new string with leading and/or trailing occurrences of +characters in chars removed as appropriate.

+
+
+
+ +
+
+proc const string.partition( sep: string) : 3*(string)
+

Splits the string on sep into a 3*string consisting of the section +before sep, sep, and the section after sep. If sep is not found, +the tuple will contain the whole string, and then two empty strings.

+
+ +
+
+proc string.dedent(columns = 0, ignoreFirst = true) : string
+
+

Warning

+

string.dedent is subject to change in the future.

+
+

Remove indentation from each line of a string.

+

This can be useful when applied to multi-line strings that are indented +in the source code, but should not be indented in the output.

+

When columns == 0, determine the level of indentation to remove from +all lines by finding the common leading whitespace across all non-empty +lines. Empty lines are lines containing only whitespace. Tabs and spaces +are the only whitespaces that are considered, but are not treated as +the same characters when determining common whitespace.

+

When columns > 0, remove columns leading whitespace characters +from each line. Tabs are not considered whitespace when columns > 0, +so only leading spaces are removed.

+
+
Arguments:
+
    +
  • columns – The number of columns of indentation to remove. Infer +common leading whitespace if columns == 0.

  • +
  • ignoreFirst – When true, ignore first line when determining the +common leading whitespace, and make no changes to the +first line.

  • +
+
+
Returns:
+

A new string with indentation removed.

+
+
+
+ +
+
+proc string.isUpper() : bool
+

Checks if all the characters in the string are either uppercase (A-Z) or +uncased (not a letter).

+
+
Returns:
+

    +
  • true – if the string contains at least one uppercase character and no lowercase characters, ignoring uncased characters.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isLower() : bool
+

Checks if all the characters in the string are either lowercase (a-z) or +uncased (not a letter).

+
+
Returns:
+

    +
  • true – when there are no uppercase characters in the string.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isSpace() : bool
+

Checks if all the characters in the string are whitespace (’ ‘, ‘\t’, +‘\n’, ‘\v’, ‘\f’, ‘\r’).

+
+
Returns:
+

    +
  • true – when all the characters are whitespace.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isAlpha() : bool
+

Checks if all the characters in the string are alphabetic (a-zA-Z).

+
+
Returns:
+

    +
  • true – when the characters are alphabetic.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isDigit() : bool
+

Checks if all the characters in the string are digits (0-9).

+
+
Returns:
+

    +
  • true – when the characters are digits.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isAlnum() : bool
+

Checks if all the characters in the string are alphanumeric (a-zA-Z0-9).

+
+
Returns:
+

    +
  • true – when the characters are alphanumeric.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isPrintable() : bool
+

Checks if all the characters in the string are printable.

+
+
Returns:
+

    +
  • true – when the characters are printable.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.isTitle() : bool
+

Checks if all uppercase characters are preceded by uncased characters, +and if all lowercase characters are preceded by cased characters.

+
+
Returns:
+

    +
  • true – when the condition described above is met.

  • +
  • false – otherwise

  • +
+

+
+
+
+ +
+
+proc string.toLower() : string
+
+
Returns:
+

A new string with all uppercase characters replaced with their +lowercase counterpart.

+
+
+
+

Note

+

The case change operation is not currently performed on characters whose +cases take different number of bytes to represent in Unicode mapping.

+
+
+ +
+
+proc string.toUpper() : string
+
+
Returns:
+

A new string with all lowercase characters replaced with their +uppercase counterpart.

+
+
+
+

Note

+

The case change operation is not currently performed on characters whose +cases take different number of bytes to represent in Unicode mapping.

+
+
+ +
+
+proc string.toTitle() : string
+
+
Returns:
+

A new string with all cased characters following an uncased +character converted to uppercase, and all cased characters +following another cased character converted to lowercase.

+
+
+
+

Note

+

The case change operation is not currently performed on characters whose +cases take different number of bytes to represent in Unicode mapping.

+
+
+ +
+
+operator byteIndex.=(ref lhs: byteIndex, rhs: int)
+

Copies the int rhs into the byteIndex lhs.

+
+ +
+
+operator byteIndex.=(ref lhs: byteIndex, const ref rhs: byteIndex)
+
+ +
+
+operator codepointIndex.=(ref lhs: codepointIndex, rhs: int)
+

Copies the int rhs into the codepointIndex lhs.

+
+ +
+
+operator codepointIndex.=(ref lhs: codepointIndex, const ref rhs: codepointIndex)
+
+ +
+
+operator =(ref lhs: string, rhs: string) : void
+

Copies the string rhs into the string lhs.

+
+ +
+
+operator string.+(s0: string, s1: string) : string
+
+
Returns:
+

A new string which is the result of concatenating s0 and s1

+
+
+
+ +
+
+operator *(s: string, n: integral) : string
+
+
Returns:
+

A new string which is the result of repeating s n times. +If n is less than or equal to 0, an empty string is returned.

+
+
+

The operation is commutative. +For example:

+
writeln("Hello! " * 3);
+or
+writeln(3 * "Hello! ");
+
+
+

Results in:

+
Hello! Hello! Hello!
+
+
+
+ +
+
+operator *(n: integral, s: string)
+
+ +
+
+operator string.==(param s0: string, param s1: string) param
+
+ +
+
+operator string.!=(param s0: string, param s1: string) param
+
+ +
+
+operator string.<=(param a: string, param b: string) param
+
+ +
+
+operator string.>=(param a: string, param b: string) param
+
+ +
+
+operator string.<(param a: string, param b: string) param
+
+ +
+
+operator string.>(param a: string, param b: string) param
+
+ +
+
+operator string.+(param a: string, param b: string) param
+
+ +
+
+proc param string.toByte() param : uint(8)
+
+ +
+
+proc param string.byte(param i: int) param : uint(8)
+
+ +
+
+proc param string.this(param i: int) param : string
+
+ +
+
+proc param string.item(param i: int) param : string
+
+ +
+
+proc param string.numBytes param
+
+ +
+
+proc param string.numCodepoints param
+
+ +
+
+proc param string.size param
+
+ +
+
+proc _string_contains(param a: string, param b: string) param
+
+ +
+
+operator string.+=(ref lhs: string, const ref rhs: string) : void
+

Appends the string rhs to the string lhs.

+
+ +
+
+proc ref string.appendCodepointValues(codepoints: int ...) : void
+
+

Warning

+

‘string.appendCodepointValues’ is unstable and may change in the future

+
+

Appends the codepoint values passed to the string this.

+

Any argument not in 0..0x10FFFF is not valid Unicode codepoint. +This function will append the replacement character 0xFFFD instead of +such invalid arguments.

+
+ +
+
+operator string.==(a: string, b: string) : bool
+
+ +
+
+operator string.!=(a: string, b: string) : bool
+
+ +
+
+operator string.<(a: string, b: string) : bool
+
+ +
+
+operator string.>(a: string, b: string) : bool
+
+ +
+
+operator string.<=(a: string, b: string) : bool
+
+ +
+
+operator string.>=(a: string, b: string) : bool
+
+ +
+
+type wint_t = int(32)
+
+ +
+
+proc codepointToString(i: int(32)) : string
+
+
Returns:
+

A new string storing the complete multibyte character sequence +that corresponds to the codepoint value i.

+
+
+
+ +
+
+operator :(cs: c_string, type t: string)
+
+

Warning

+

the type ‘c_string’ is deprecated; please use one of the ‘string.create*ingBuffer’ methods that takes a ‘c_ptrConst(c_char)’ instead

+
+
+ +
+
+operator :(cpi: byteIndex, type t: int)
+
+ +
+
+operator :(i: int, type t: byteIndex)
+
+ +
+
+operator :(cpi: codepointIndex, type t: int)
+
+ +
+
+operator :(i: int, type t: codepointIndex)
+
+ +
+
+proc string.hash() : uint
+
+ +
+
+operator string.<=>(ref x: string, ref y: string)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/String/NVStringFactory.html b/docs/internal/modules/internal/String/NVStringFactory.html new file mode 100644 index 000000000..54bd298a6 --- /dev/null +++ b/docs/internal/modules/internal/String/NVStringFactory.html @@ -0,0 +1,212 @@ + + + + + + + NVStringFactory — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

NVStringFactory

+

Usage

+
use String.NVStringFactory;
+
+
+

or

+
import String.NVStringFactory;
+
+
+
+
+proc chpl_createStringWithNewBufferNV(x: bufferType, length: int, size: int, numCodepoints: int)
+
+ +
+
+proc chpl_createStringWithBorrowedBufferNV(x: bufferType, length: int, size: int, numCodepoints: int)
+
+ +
+
+proc chpl_createStringWithOwnedBufferNV(x: bufferType, length: int, size: int, numCodepoints: int)
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/StringCasts.html b/docs/internal/modules/internal/StringCasts.html new file mode 100644 index 000000000..0bf5aa1bd --- /dev/null +++ b/docs/internal/modules/internal/StringCasts.html @@ -0,0 +1,272 @@ + + + + + + + StringCasts — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

StringCasts

+

Usage

+
use StringCasts;
+
+
+

or

+
import StringCasts;
+
+
+
    +
  • Copyright 2020-2024 Hewlett Packard Enterprise Development LP

  • +
  • Copyright 2004-2019 Cray Inc.

  • +
  • Other additional copyright holders may be indicated within.

  • +
  • +
  • The entirety of this work is licensed under the Apache License,

  • +
  • Version 2.0 (the “License”); you may not use this file except

  • +
  • in compliance with the License.

  • +
  • +
  • You may obtain a copy of the License at

  • +
  • +
  • http://www.apache.org/licenses/LICENSE-2.0

  • +
  • +
  • Unless required by applicable law or agreed to in writing, software

  • +
  • distributed under the License is distributed on an “AS IS” BASIS,

  • +
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  • +
  • See the License for the specific language governing permissions and

  • +
  • limitations under the License.

  • +
+
+
+operator :(x: bool, type t: string)
+
+ +
+
+operator :(x: string, type t: bool) throws
+
+ +
+
+operator :(x: ?k*?t, type s: string)   where isPrimitiveType(t) && isHomogeneousTupleType(x.type)
+
+ +
+
+operator :(x: integral, type t: string)
+
+ +
+
+operator :(x: string, type t: integral) throws
+
+ +
+
+proc _real_cast_helper(x: real(64), param isImag: bool) : string
+
+ +
+
+operator :(x: chpl_anyreal, type t: string)
+
+ +
+
+operator :(x: chpl_anyimag, type t: string)
+
+ +
+
+operator :(x: string, type t: chpl_anyreal) throws
+
+ +
+
+operator :(x: string, type t: chpl_anyimag) throws
+
+ +
+
+operator :(x: chpl_anycomplex, type t: string)
+
+ +
+
+operator :(x: string, type t: chpl_anycomplex) throws
+
+ +
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/startInitCommDiags.html b/docs/internal/modules/internal/startInitCommDiags.html new file mode 100644 index 000000000..5ce1c9efa --- /dev/null +++ b/docs/internal/modules/internal/startInitCommDiags.html @@ -0,0 +1,193 @@ + + + + + + + startInitCommDiags — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

startInitCommDiags

+

Usage

+
use startInitCommDiags;
+
+
+

or

+
import startInitCommDiags;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/modules/internal/stopInitCommDiags.html b/docs/internal/modules/internal/stopInitCommDiags.html new file mode 100644 index 000000000..d927f16d5 --- /dev/null +++ b/docs/internal/modules/internal/stopInitCommDiags.html @@ -0,0 +1,191 @@ + + + + + + + stopInitCommDiags — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

stopInitCommDiags

+

Usage

+
use stopInitCommDiags;
+
+
+

or

+
import stopInitCommDiags;
+
+
+
+ + +
+
+ +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/docs/internal/objects.inv b/docs/internal/objects.inv new file mode 100644 index 000000000..db0c5e4ff Binary files /dev/null and b/docs/internal/objects.inv differ diff --git a/docs/internal/search.html b/docs/internal/search.html new file mode 100644 index 000000000..67f58145e --- /dev/null +++ b/docs/internal/search.html @@ -0,0 +1,193 @@ + + + + + + Search — chpldoc 0.0.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+ +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/docs/internal/searchindex.js b/docs/internal/searchindex.js new file mode 100644 index 000000000..9b01740f5 --- /dev/null +++ b/docs/internal/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames": ["index", "modules/internal/ArrayViewRankChange", "modules/internal/ArrayViewReindex", "modules/internal/ArrayViewSlice", "modules/internal/Atomics", "modules/internal/AtomicsCommon", "modules/internal/ByteBufferHelpers", "modules/internal/Bytes", "modules/internal/BytesCasts", "modules/internal/BytesStringCommon", "modules/internal/CString", "modules/internal/ChapelArray", "modules/internal/ChapelArrayViewElision", "modules/internal/ChapelAutoAggregation", "modules/internal/ChapelAutoLocalAccess", "modules/internal/ChapelBase", "modules/internal/ChapelBase/currentTask", "modules/internal/ChapelContext", "modules/internal/ChapelDebugPrint", "modules/internal/ChapelDistribution", "modules/internal/ChapelDomain", "modules/internal/ChapelGpuSupport", "modules/internal/ChapelHashing", "modules/internal/ChapelHashtable", "modules/internal/ChapelIOSerialize", "modules/internal/ChapelIOStringifyHelper", "modules/internal/ChapelIteratorSupport", "modules/internal/ChapelLocale", "modules/internal/ChapelLocks", "modules/internal/ChapelNumLocales", "modules/internal/ChapelPrivatization", "modules/internal/ChapelRange", "modules/internal/ChapelReduce", "modules/internal/ChapelRemoteVars", "modules/internal/ChapelSerializedBroadcast", "modules/internal/ChapelShortArrayTransfer", "modules/internal/ChapelStandard", "modules/internal/ChapelStaticVars", "modules/internal/ChapelSyncvar", "modules/internal/ChapelTaskData", "modules/internal/ChapelTaskDataHelp", "modules/internal/ChapelTaskID", "modules/internal/ChapelThreads", "modules/internal/ChapelTuple", "modules/internal/ChapelUtil", "modules/internal/DefaultAssociative", "modules/internal/DefaultRectangular", "modules/internal/DefaultSparse", "modules/internal/ExportWrappers", "modules/internal/ExternalArray", "modules/internal/ISO_Fortran_binding", "modules/internal/LocaleModelHelpAPU", "modules/internal/LocaleModelHelpFlat", "modules/internal/LocaleModelHelpGPU", "modules/internal/LocaleModelHelpMem", "modules/internal/LocaleModelHelpRuntime", "modules/internal/LocaleModelHelpSetup", "modules/internal/LocalesArray", "modules/internal/MemConsistency", "modules/internal/MemTracking", "modules/internal/NetworkAtomicTypes", "modules/internal/NetworkAtomics", "modules/internal/OwnedObject", "modules/internal/PrintModuleInitOrder", "modules/internal/SharedObject", "modules/internal/String", "modules/internal/String/NVStringFactory", "modules/internal/StringCasts", "modules/internal/startInitCommDiags", "modules/internal/stopInitCommDiags"], "filenames": ["index.rst", "modules/internal/ArrayViewRankChange.rst", "modules/internal/ArrayViewReindex.rst", "modules/internal/ArrayViewSlice.rst", "modules/internal/Atomics.rst", "modules/internal/AtomicsCommon.rst", "modules/internal/ByteBufferHelpers.rst", "modules/internal/Bytes.rst", "modules/internal/BytesCasts.rst", "modules/internal/BytesStringCommon.rst", "modules/internal/CString.rst", "modules/internal/ChapelArray.rst", "modules/internal/ChapelArrayViewElision.rst", "modules/internal/ChapelAutoAggregation.rst", "modules/internal/ChapelAutoLocalAccess.rst", "modules/internal/ChapelBase.rst", "modules/internal/ChapelBase/currentTask.rst", "modules/internal/ChapelContext.rst", "modules/internal/ChapelDebugPrint.rst", "modules/internal/ChapelDistribution.rst", "modules/internal/ChapelDomain.rst", "modules/internal/ChapelGpuSupport.rst", "modules/internal/ChapelHashing.rst", "modules/internal/ChapelHashtable.rst", "modules/internal/ChapelIOSerialize.rst", "modules/internal/ChapelIOStringifyHelper.rst", "modules/internal/ChapelIteratorSupport.rst", "modules/internal/ChapelLocale.rst", "modules/internal/ChapelLocks.rst", "modules/internal/ChapelNumLocales.rst", "modules/internal/ChapelPrivatization.rst", "modules/internal/ChapelRange.rst", "modules/internal/ChapelReduce.rst", "modules/internal/ChapelRemoteVars.rst", "modules/internal/ChapelSerializedBroadcast.rst", "modules/internal/ChapelShortArrayTransfer.rst", "modules/internal/ChapelStandard.rst", "modules/internal/ChapelStaticVars.rst", "modules/internal/ChapelSyncvar.rst", "modules/internal/ChapelTaskData.rst", "modules/internal/ChapelTaskDataHelp.rst", "modules/internal/ChapelTaskID.rst", "modules/internal/ChapelThreads.rst", "modules/internal/ChapelTuple.rst", "modules/internal/ChapelUtil.rst", "modules/internal/DefaultAssociative.rst", "modules/internal/DefaultRectangular.rst", "modules/internal/DefaultSparse.rst", "modules/internal/ExportWrappers.rst", "modules/internal/ExternalArray.rst", "modules/internal/ISO_Fortran_binding.rst", "modules/internal/LocaleModelHelpAPU.rst", "modules/internal/LocaleModelHelpFlat.rst", "modules/internal/LocaleModelHelpGPU.rst", "modules/internal/LocaleModelHelpMem.rst", "modules/internal/LocaleModelHelpRuntime.rst", "modules/internal/LocaleModelHelpSetup.rst", "modules/internal/LocalesArray.rst", "modules/internal/MemConsistency.rst", "modules/internal/MemTracking.rst", "modules/internal/NetworkAtomicTypes.rst", "modules/internal/NetworkAtomics.rst", "modules/internal/OwnedObject.rst", "modules/internal/PrintModuleInitOrder.rst", "modules/internal/SharedObject.rst", "modules/internal/String.rst", "modules/internal/String/NVStringFactory.rst", "modules/internal/StringCasts.rst", "modules/internal/startInitCommDiags.rst", "modules/internal/stopInitCommDiags.rst"], "titles": ["chpldoc documentation", "ArrayViewRankChange", "ArrayViewReindex", "ArrayViewSlice", "Atomics", "AtomicsCommon", "ByteBufferHelpers", "Bytes", "BytesCasts", "BytesStringCommon", "CString", "ChapelArray", "ChapelArrayViewElision", "ChapelAutoAggregation", "ChapelAutoLocalAccess", "ChapelBase", "currentTask", "ChapelContext", "ChapelDebugPrint", "ChapelDistribution", "ChapelDomain", "ChapelGpuSupport", "ChapelHashing", "ChapelHashtable", "ChapelIOSerialize", "ChapelIOStringifyHelper", "ChapelIteratorSupport", "ChapelLocale", "ChapelLocks", "ChapelNumLocales", "ChapelPrivatization", "ChapelRange", "ChapelReduce", "ChapelRemoteVars", "ChapelSerializedBroadcast", "ChapelShortArrayTransfer", "ChapelStandard", "ChapelStaticVars", "ChapelSyncvar", "ChapelTaskData", "ChapelTaskDataHelp", "ChapelTaskID", "ChapelThreads", "ChapelTuple", "ChapelUtil", "DefaultAssociative", "DefaultRectangular", "DefaultSparse", "ExportWrappers", "ExternalArray", "ISO_Fortran_binding", "LocaleModelHelpAPU", "LocaleModelHelpFlat", "LocaleModelHelpGPU", "LocaleModelHelpMem", "LocaleModelHelpRuntime", "LocaleModelHelpSetup", "LocalesArray", "MemConsistency", "MemTracking", "NetworkAtomicTypes", "NetworkAtomics", "OwnedObject", "PrintModuleInitOrder", "SharedObject", "String", "NVStringFactory", "StringCasts", "startInitCommDiags", "stopInitCommDiags"], "terms": {"content": [0, 7, 28, 59, 65], "arrayviewrankchang": 0, "arrayviewreindex": 0, "arrayviewslic": 0, "atom": [0, 11, 28, 37, 56, 64], "atomicscommon": 0, "bytebufferhelp": 0, "byte": [0, 8, 9, 11, 48, 49, 65], "bytescast": 0, "bytesstringcommon": 0, "cstring": 0, "chapelarrai": 0, "chapelarrayviewelis": 0, "chapelautoaggreg": 0, "chapelautolocalaccess": 0, "chapelbas": [0, 16], "currenttask": [0, 15, 55], "chapelcontext": 0, "chapeldebugprint": 0, "chapeldistribut": 0, "chapeldomain": 0, "chapelgpusupport": 0, "chapelhash": 0, "chapelhasht": 0, "chapelioseri": 0, "chapeliostringifyhelp": 0, "chapeliteratorsupport": 0, "chapellocal": 0, "chapellock": 0, "chapelnumlocal": 0, "chapelprivat": 0, "chapelrang": [0, 20], "chapelreduc": 0, "chapelremotevar": 0, "chapelserializedbroadcast": 0, "chapelshortarraytransf": 0, "chapelstandard": 0, "chapelstaticvar": 0, "chapelsyncvar": 0, "chapeltaskdata": 0, "chapeltaskdatahelp": 0, "chapeltaskid": 0, "chapelthread": 0, "chapeltupl": 0, "chapelutil": 0, "defaultassoci": 0, "defaultrectangular": [0, 18], "defaultspars": 0, "exportwrapp": 0, "externalarrai": 0, "iso_fortran_bind": 0, "localemodelhelpapu": 0, "localemodelhelpflat": 0, "localemodelhelpgpu": 0, "localemodelhelpmem": 0, "localemodelhelpruntim": 0, "localemodelhelpsetup": 0, "localesarrai": [0, 27], "memconsist": 0, "memtrack": 0, "networkatomictyp": 0, "networkatom": 0, "ownedobject": 0, "printmoduleinitord": 0, "sharedobject": 0, "string": [0, 7, 9, 10, 11, 15, 18, 19, 20, 25, 27, 31, 48, 49, 56, 59, 66, 67], "nvstringfactori": [0, 65], "stringcast": 0, "startinitcommdiag": 0, "stopinitcommdiag": 0, "index": [0, 7, 9, 10, 11, 19, 20, 27, 31, 47, 65], "chapel": [0, 4, 20, 26, 27], "modul": [0, 18, 26], "search": [0, 7, 11, 65], "page": 0, "usag": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "us": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "import": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "class": [1, 2, 3, 15, 19, 20, 23, 27, 32, 33, 37, 38, 45, 46, 47, 62, 64], "arrayviewrankchangedist": 1, "basedist": [1, 2, 11, 19, 45, 46, 47], "var": [1, 2, 3, 4, 5, 7, 9, 11, 12, 15, 18, 19, 20, 23, 27, 28, 30, 31, 32, 33, 37, 38, 44, 45, 46, 47, 48, 49, 50, 56, 61, 62, 63, 64, 65], "downdistpid": [1, 2], "int": [1, 2, 4, 5, 6, 7, 9, 10, 11, 15, 19, 20, 22, 23, 26, 27, 29, 30, 31, 34, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 61, 63, 64, 65, 66], "downdistinst": [1, 2], "const": [1, 2, 3, 4, 7, 9, 11, 12, 15, 19, 20, 23, 25, 26, 27, 29, 31, 33, 38, 42, 43, 45, 46, 47, 49, 50, 51, 57, 58, 59, 62, 63, 64, 65], "collapseddim": 1, "idx": [1, 11, 19, 20, 27, 34, 45, 46], "proc": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 59, 61, 62, 63, 64, 65, 66, 67], "downdist": [1, 2], "overrid": [1, 2, 3, 15, 19, 27, 45, 46, 47], "dsinewrectangulardom": [1, 2, 19, 46], "param": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 23, 25, 26, 27, 31, 32, 34, 35, 38, 43, 44, 45, 46, 47, 50, 51, 52, 53, 56, 58, 65, 67], "rank": [1, 2, 3, 11, 12, 19, 20, 45, 46, 47, 50], "type": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 23, 26, 27, 30, 31, 32, 33, 37, 38, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 54, 55, 56, 58, 59, 61, 62, 64, 65, 67], "idxtyp": [1, 2, 3, 11, 19, 20, 31, 45, 46, 47, 65], "stride": [1, 2, 11, 19, 20, 31, 46, 50], "ind": [1, 2, 19, 20, 31, 46, 47], "dsiclon": [1, 2, 46], "dsisupportsprivat": [1, 2, 3, 19], "dsigetprivatizedata": [1, 2, 3], "dsiprivat": [1, 2, 3], "privatizedata": [1, 2, 3], "dsidestroydist": [1, 2, 19], "dsiislayout": [1, 2, 19, 46], "dsiequaldmap": [1, 46], "arrayviewrankchangedom": 1, "baserectangulardom": [1, 2, 19, 20, 46], "updominst": [1, 2], "unmanag": [1, 2, 11, 15, 19, 26, 27, 38, 40, 45, 46, 47, 62, 64], "defaultrectangulardom": [1, 2, 26, 46], "distpid": [1, 2], "distinst": [1, 2], "dist": [1, 2, 19, 20, 45, 46, 47], "downdompid": [1, 2], "downdominst": [1, 2], "downdomtyp": [1, 2], "size": [1, 2, 4, 7, 9, 10, 11, 15, 19, 20, 23, 31, 43, 46, 48, 54, 65, 66], "downrank": 1, "updom": [1, 2], "downdom": [1, 2], "dsibuildarrai": [1, 2, 45, 46, 47], "elttyp": [1, 2, 3, 10, 11, 12, 15, 19, 20, 32, 33, 45, 46, 47, 49, 50], "initelt": [1, 2, 19, 20, 45, 46, 47], "bool": [1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 15, 19, 20, 22, 23, 25, 26, 27, 28, 31, 38, 39, 43, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58, 59, 62, 64, 65, 67], "dsisetindic": [1, 2, 46], "dsiassigndomain": [1, 2, 45, 46, 47], "rh": [1, 2, 4, 7, 9, 11, 12, 15, 19, 20, 31, 38, 45, 46, 47, 58, 62, 64, 65], "domain": [1, 2, 11, 14, 15, 19, 20, 26, 31, 45, 46, 47, 49, 57], "lhsprivat": [1, 2, 45, 46, 47], "iter": [1, 2, 3, 7, 9, 11, 12, 15, 19, 20, 23, 26, 27, 31, 43, 45, 46, 47, 65], "tag": [1, 2, 3, 11, 12, 20, 23, 27, 31, 43, 45, 46, 47], "iterkind": [1, 2, 3, 11, 12, 15, 20, 23, 27, 31, 43, 45, 46, 47], "where": [1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 15, 19, 20, 23, 26, 27, 31, 34, 38, 43, 45, 46, 47, 49, 62, 64, 65, 67], "standalon": [1, 2, 3, 11, 15, 20, 23, 27, 31, 45, 46, 47], "localemodelhassublocal": [1, 2, 3, 51, 52, 53], "chpl__isdrordrview": [1, 2, 11, 46], "__primit": [1, 2, 3, 11, 15, 20, 26, 62, 64], "resolv": [1, 2, 3, 11, 18, 20], "leader": [1, 2, 3, 11, 12, 15, 20, 23, 26, 31, 43, 45, 46, 47], "followthi": [1, 2, 3, 11, 12, 20, 23, 31, 43, 45, 46, 47], "follow": [1, 2, 3, 4, 7, 11, 12, 15, 20, 23, 27, 31, 43, 45, 46, 47, 65], "chpl_rankchangeconvertlodtupletohid": 1, "tup": [1, 2, 7, 20, 65], "chpl_rankchangeconverthidtupletolod": 1, "downidxtoupidx": [1, 2], "downidx": [1, 2], "dsiserialwrit": [1, 2, 3, 45, 46, 47], "f": [1, 2, 3, 7, 45, 46, 47, 62, 64, 65], "throw": [1, 2, 3, 4, 7, 8, 9, 10, 11, 15, 19, 20, 27, 31, 38, 45, 46, 47, 58, 62, 64, 65, 67], "dsimydist": [1, 2, 19, 45, 46, 47], "dsitargetlocal": [1, 2, 45, 46, 47], "ref": [1, 2, 3, 4, 7, 9, 10, 11, 12, 15, 19, 20, 23, 26, 27, 28, 31, 32, 33, 34, 37, 38, 41, 43, 45, 46, 47, 48, 49, 50, 51, 56, 57, 58, 59, 62, 64, 65], "dsihassinglelocalsubdomain": [1, 2, 3, 45, 46, 47], "dsilocalsubdomain": [1, 2, 3, 45, 46, 47], "loc": [1, 2, 3, 6, 11, 20, 27, 33, 45, 46, 47, 51, 52, 53, 55, 56], "local": [1, 2, 3, 7, 11, 19, 20, 22, 27, 28, 37, 45, 46, 47, 56, 57, 65], "isrankchangedomainview": [1, 19], "_getactualdomain": [1, 2], "dsidestroydom": [1, 2, 19], "parsaf": [1, 2, 15, 19, 20, 45, 46, 47], "dsilow": [1, 2, 19, 46], "dsihigh": [1, 2, 19, 46], "dsistrid": [1, 2, 19, 46], "dsialign": [1, 2, 19, 46], "dsifirst": [1, 2, 19, 46, 47], "dsilast": [1, 2, 19, 46, 47], "dsialignedlow": [1, 2, 19, 46], "dsialignedhigh": [1, 2, 19, 46], "dsiindexord": [1, 2, 19, 46], "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 20, 22, 26, 27, 30, 31, 33, 37, 38, 43, 45, 46, 48, 51, 52, 53, 55, 58, 59, 62, 63, 64, 65, 67], "dsicreateindexbuff": [1, 2, 19], "dsigetreprivatizedata": [1, 2], "dsireprivat": [1, 2], "other": [1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 19, 20, 27, 28, 30, 31, 32, 33, 37, 38, 46, 48, 51, 52, 53, 56, 58, 64, 65, 67], "reprivatizedata": [1, 2], "dsisupportsautolocalaccess": [1, 19, 45, 46, 47], "arrayviewrankchangearr": 1, "absbasearr": [1, 2, 3, 19, 45], "_dompid": [1, 2, 3], "dom": [1, 2, 3, 11, 13, 19, 20, 45, 46, 47, 49], "_arrpid": [1, 2, 3], "_arrinst": [1, 2, 3], "indexcach": [1, 2, 3], "ownsarrinst": [1, 2], "init": [1, 2, 3, 4, 5, 7, 12, 15, 19, 20, 23, 27, 28, 31, 33, 37, 38, 45, 46, 47, 56, 62, 64, 65], "isrankchangearrayview": [1, 19], "privdom": [1, 2, 3], "dsiserialread": [1, 2, 3, 45, 46], "dsidisplayrepresent": [1, 2, 3, 19, 46], "dsiaccess": [1, 2, 3, 45, 46, 47], "shouldreturnrvaluebyvalu": [1, 2, 3, 11, 45, 46, 47], "dsilocalaccess": [1, 2, 45], "dsiboundscheck": [1, 2, 3, 46], "shoulduseindexcach": [1, 2, 3], "buildindexcach": [1, 2, 3], "arr": [1, 2, 3, 11, 12, 13, 14, 15, 19, 20, 45, 46, 49], "dsigetbasedom": [1, 2, 3, 19, 45, 46], "_getactualarrai": [1, 2, 3], "_containsrcr": [1, 2, 3], "_getrcreview": [1, 2, 3], "dsielementinitializationcomplet": [1, 2, 3, 19, 45, 46], "dsidestroyarr": [1, 2, 3, 19, 45, 46], "deinitelt": [1, 2, 3, 11, 19, 45, 46], "doicanbulktransferrankchang": [1, 2, 3, 19, 46], "doibulktransferfromknown": [1, 2, 3, 46, 47], "destdom": [1, 2, 3, 46, 47], "srcclass": [1, 2, 3, 11, 46, 47], "srcdom": [1, 2, 3, 46, 47], "thi": [1, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 18, 19, 20, 26, 27, 30, 31, 33, 37, 38, 43, 46, 47, 48, 51, 52, 53, 58, 62, 64, 65, 67], "doibulktransfertoknown": [1, 2, 3, 46, 47], "destclass": [1, 2, 3, 11, 46, 47], "chpl_rankchangeconvertidx": 1, "integr": [1, 2, 6, 7, 8, 9, 10, 11, 14, 15, 20, 31, 43, 46, 54, 65, 67], "chpl_rankchangeconvertidxhidtolod": 1, "chpl_rankchangeconvertdowntoup": 1, "dim": [1, 2, 11, 12, 20, 26, 46, 50], "uprank": 1, "chpl_rankchangeconvertdom": 1, "arrayviewreindexdist": 2, "arrayviewreindexdom": 2, "ownsdowndominst": 2, "fals": [2, 3, 4, 7, 9, 11, 12, 14, 15, 18, 19, 20, 27, 31, 35, 38, 44, 45, 46, 47, 51, 52, 53, 56, 59, 62, 63, 64, 65], "chpl_reindexconvertlodtupletohid": 2, "chpl_reindexconverthidtupletolod": 2, "isreindexdomainview": [2, 19], "arrayviewreindexarr": 2, "isreindexarrayview": [2, 19], "chpl_reindexconvertidxdim": 2, "chpl_reindexconvertidx": 2, "chpl_reindexconvertdom": 2, "chpl_reindexconvertdommaybeslic": 2, "chpl_debugserializeslic": 3, "chpl_serializeslic": 3, "arrayviewslicearr": 3, "chpl__rvfme": [3, 11, 19], "chpl__serial": [3, 7, 11, 20, 46, 65], "chpl__deseri": [3, 7, 11, 20, 46, 65], "data": [3, 7, 9, 11, 15, 19, 20, 26, 27, 32, 45, 46, 48, 59, 65], "isslicearrayview": [3, 19], "For": [4, 7, 11, 20, 59, 65], "exampl": [4, 7, 11, 20, 31, 59, 65], "code": [4, 7, 9, 65], "declar": [4, 19, 20], "an": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 19, 20, 27, 30, 31, 33, 37, 38, 48, 51, 52, 53, 58, 62, 64, 65, 67], "variabl": [4, 11, 27, 33, 37, 38, 46, 59, 63], "x": [4, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 22, 26, 31, 32, 38, 41, 43, 44, 46, 49, 62, 64, 65, 66, 67], "store": [4, 11, 27, 38, 64, 65], "Such": 4, "without": [4, 5, 6, 8, 9, 12, 13, 14, 19, 20, 25, 30, 33, 37, 38, 48, 51, 52, 53, 58, 62, 64, 67], "initi": [4, 9, 18, 20, 27, 38, 55, 62, 64], "express": [4, 5, 6, 8, 9, 11, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "default": [4, 7, 9, 11, 15, 20, 27, 32, 37, 38, 65], "valu": [4, 7, 9, 11, 15, 19, 20, 27, 31, 32, 37, 38, 49, 62, 64, 65], "contain": [4, 7, 11, 19, 20, 31, 37, 62, 64, 65], "e": [4, 7, 11, 15, 20, 31, 40, 64, 65], "0": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 23, 26, 27, 30, 31, 33, 37, 43, 46, 47, 48, 50, 51, 52, 53, 58, 59, 65, 67], "can": [4, 7, 11, 18, 19, 20, 25, 27, 31, 64, 65], "also": [4, 20, 27, 31], "y": [4, 7, 11, 43, 65], "1": [4, 5, 6, 7, 9, 11, 12, 19, 20, 27, 31, 45, 46, 47, 50, 65], "similarli": 4, "temporari": 4, "creat": [4, 7, 9, 19, 20, 27, 62, 64, 65], "cast": [4, 11, 15, 20, 31, 38, 43, 64], "one": [4, 7, 11, 19, 20, 27, 31, 38, 64, 65], "assign": [4, 11, 20, 38, 62, 64], "support": [4, 7, 11, 15, 20, 64, 65], "between": [4, 7, 9, 11, 20, 31, 62, 64, 65], "well": [4, 11], "2": [4, 5, 6, 8, 9, 12, 13, 14, 15, 19, 20, 30, 31, 32, 33, 37, 46, 48, 51, 52, 53, 58, 63, 67], "equival": [4, 20], "write": [4, 5, 6, 8, 9, 11, 12, 13, 14, 19, 30, 33, 37, 38, 48, 51, 52, 53, 58, 67], "read": [4, 5, 9, 11, 38], "current": [4, 7, 11, 20, 26, 31, 38, 64, 65], "oper": [4, 7, 8, 10, 11, 12, 15, 20, 26, 27, 31, 38, 41, 43, 58, 62, 64, 65, 67], "all": [4, 7, 11, 19, 20, 26, 27, 59, 62, 64, 65], "sign": [4, 11], "unsign": 4, "integ": [4, 7, 11, 27, 31, 65], "real": [4, 8, 15, 22, 23, 67], "note": [4, 11, 19, 20, 27], "ar": [4, 7, 11, 15, 19, 20, 26, 27, 31, 32, 33, 38, 59, 62, 64, 65], "The": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 19, 20, 27, 30, 31, 33, 37, 38, 46, 48, 52, 58, 59, 62, 63, 64, 65, 67], "list": [4, 19, 65], "each": [4, 7, 9, 11, 20, 31, 37, 43, 65], "rational": 4, "choic": [4, 9], "wa": [4, 19, 64], "strongli": 4, "influenc": 4, "c11": 4, "standard": [4, 26], "most": [4, 20], "method": [4, 7, 11, 18, 19, 20, 27, 38, 64, 65], "accept": [4, 20], "option": [4, 7, 59, 65], "argument": [4, 7, 9, 11, 20, 27, 38, 43, 46, 59, 62, 64, 65], "name": [4, 15, 27], "order": [4, 11, 15, 18, 20, 26, 31, 58], "memoryord": [4, 15, 58], "specifi": [4, 7, 9, 11, 20, 27, 31, 65], "constraint": 4, "relax": [4, 58], "acquir": [4, 58], "releas": [4, 7, 26, 58, 62, 65], "acqrel": [4, 58], "seqcst": [4, 58], "see": [4, 5, 6, 8, 9, 12, 13, 14, 19, 20, 30, 31, 32, 33, 37, 48, 51, 52, 53, 58, 67], "chapter": 4, "memory_consistency_model": 4, "particular": [4, 11, 19, 20], "non_sc_atom": 4, "more": [4, 7, 11, 20, 27, 31, 65], "inform": [4, 20, 27], "mean": [4, 9, 20], "memori": [4, 7, 20, 27, 59, 62, 64, 65], "unless": [4, 5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "paramet": [4, 11, 15, 20, 31], "implementor": 4, "Not": 4, "architectur": [4, 27], "implement": [4, 18, 19, 20, 27, 31, 38, 64], "mai": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 19, 20, 27, 30, 31, 33, 37, 46, 48, 51, 52, 53, 58, 65, 67], "In": [4, 18, 20, 26, 27, 62, 64, 65], "case": [4, 7, 11, 20, 62, 64, 65], "should": [4, 7, 11, 19, 20, 31, 65], "conserv": 4, "than": [4, 7, 20, 27, 31, 65], "chpl_atomic_thread_f": 4, "memory_ord": [4, 58], "atomic_f": 4, "memory_order_seq_cst": [4, 58], "atomicf": 4, "fenc": 4, "establish": [4, 31, 38], "non": [4, 7, 9, 20, 38, 64, 65], "chpl__processoratomictyp": [4, 5, 11, 27, 28, 45], "valtyp": [4, 23, 38, 61], "chpl__atomictyp": 4, "chpl_comm_ensure_progress": 4, "void": [4, 7, 10, 11, 15, 19, 30, 31, 34, 37, 39, 44, 46, 48, 49, 50, 54, 55, 65], "record": [4, 5, 7, 9, 11, 12, 15, 19, 20, 23, 27, 28, 30, 31, 33, 37, 38, 43, 44, 46, 48, 49, 50, 55, 56, 59, 61, 62, 64, 65], "atomicbool": 4, "writeserializ": [4, 7, 11, 15, 19, 20, 27, 38, 61, 62, 64, 65], "_v": [4, 61], "externt": 4, "init_help": 4, "val": [4, 11, 20, 23, 27, 38, 48, 65], "deinit": [4, 7, 11, 19, 20, 23, 27, 38, 45, 62, 64, 65], "return": [4, 7, 9, 10, 11, 15, 19, 20, 27, 31, 38, 43, 62, 64, 65], "new": [4, 7, 11, 20, 27, 31, 38, 46, 62, 64, 65], "exchang": 4, "origin": [4, 9, 11, 20, 31, 46], "compareexchang": 4, "expect": [4, 20, 27, 64], "desir": [4, 20], "onli": [4, 7, 19, 20, 27, 46, 59, 62, 64, 65], "equal": [4, 7, 11, 27, 65], "true": [4, 7, 9, 11, 15, 19, 20, 27, 31, 34, 38, 45, 46, 47, 51, 53, 64, 65], "otherwis": [4, 7, 11, 20, 31, 65], "updat": [4, 11, 64], "success": 4, "failur": 4, "compareexchangeweak": 4, "similar": 4, "except": [4, 5, 6, 8, 9, 12, 13, 14, 19, 20, 30, 33, 37, 48, 51, 52, 53, 58, 67], "function": [4, 7, 9, 11, 15, 19, 37, 62, 64, 65], "even": [4, 20], "happen": [4, 9], "could": [4, 11, 19], "weak": [4, 64], "version": [4, 5, 6, 7, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 50, 51, 52, 53, 58, 65, 67], "allow": [4, 9, 19, 20, 26, 31], "spurious": 4, "fail": [4, 20, 64], "when": [4, 7, 9, 11, 20, 27, 31, 38, 62, 64, 65], "alreadi": [4, 7, 20, 64, 65], "loop": [4, 26, 64], "offer": 4, "better": [4, 20], "perform": [4, 7, 20, 27, 38, 59, 65], "some": [4, 19, 20, 62, 64, 65], "platform": 4, "compareandswap": 4, "unstabl": [4, 7, 11, 15, 20, 27, 31, 32, 33, 38, 46, 59, 63, 65], "testandset": 4, "old": [4, 31], "clear": [4, 20], "waitfor": [4, 15], "wait": 4, "until": [4, 20, 38, 64], "yield": [4, 7, 11, 20, 46, 65], "run": [4, 7, 27, 65], "task": [4, 27, 64], "while": [4, 20, 31, 64], "serial": [4, 7, 10, 11, 15, 19, 20, 27, 38, 58, 62, 64, 65], "writer": [4, 7, 10, 11, 15, 19, 20, 27, 38, 58, 62, 64, 65], "t": [4, 7, 8, 9, 10, 11, 12, 15, 19, 20, 23, 25, 26, 31, 34, 38, 41, 43, 44, 58, 62, 64, 65, 67], "atomict": 4, "fetchadd": 4, "add": [4, 11, 15, 19, 20, 38], "result": [4, 7, 11, 20, 31, 50, 62, 64, 65], "defin": [4, 7, 11, 18, 19, 20, 31, 65], "fetchsub": 4, "subtract": 4, "from": [4, 7, 9, 11, 15, 19, 20, 27, 31, 38, 43, 62, 64, 65], "sub": [4, 15, 20], "fetchor": 4, "appli": [4, 7, 11, 20, 38, 65], "fetchand": 4, "fetchxor": 4, "xor": 4, "b": [4, 7, 9, 10, 11, 12, 15, 20, 22, 31, 35, 41, 43, 44, 58, 65], "copyright": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "2020": [5, 6, 8, 9, 12, 13, 14, 19, 30, 37, 48, 51, 52, 53, 58, 67], "2024": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "hewlett": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "packard": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "enterpris": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "develop": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "lp": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "2004": [5, 6, 8, 9, 12, 13, 14, 19, 30, 37, 48, 51, 52, 53, 58, 67], "2019": [5, 6, 8, 9, 12, 13, 14, 19, 30, 37, 48, 51, 52, 53, 58, 67], "crai": [5, 6, 8, 9, 12, 13, 14, 19, 27, 30, 37, 48, 51, 52, 53, 58, 67], "inc": [5, 6, 8, 9, 12, 13, 14, 19, 30, 37, 48, 51, 52, 53, 58, 67], "addit": [5, 6, 8, 9, 12, 13, 14, 19, 20, 30, 33, 37, 48, 51, 52, 53, 58, 67], "holder": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "indic": [5, 6, 7, 8, 9, 11, 12, 13, 14, 19, 20, 30, 33, 37, 43, 48, 51, 52, 53, 58, 65, 67], "within": [5, 6, 7, 8, 9, 10, 12, 13, 14, 19, 20, 27, 30, 31, 33, 37, 48, 51, 52, 53, 58, 65, 67], "entireti": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 52, 58, 67], "work": [5, 6, 7, 8, 9, 12, 13, 14, 18, 19, 30, 33, 37, 48, 52, 58, 65, 67], "licens": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "under": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "apach": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "you": [5, 6, 8, 9, 12, 13, 14, 19, 20, 30, 33, 37, 48, 51, 52, 53, 58, 67], "file": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "complianc": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "obtain": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "copi": [5, 6, 7, 8, 9, 11, 12, 13, 14, 19, 20, 30, 33, 37, 38, 48, 51, 52, 53, 58, 59, 62, 64, 65, 67], "http": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "www": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "org": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "requir": [5, 6, 8, 9, 12, 13, 14, 19, 26, 27, 30, 33, 37, 38, 48, 51, 52, 53, 58, 67], "applic": [5, 6, 7, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "law": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "agre": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "softwar": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "distribut": [5, 6, 8, 9, 11, 12, 13, 14, 19, 20, 30, 33, 37, 48, 51, 52, 53, 58, 67], "AS": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "basi": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "warranti": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "OR": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "condit": [5, 6, 7, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 65, 67], "OF": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "ani": [5, 6, 7, 8, 9, 12, 13, 14, 19, 20, 27, 30, 31, 33, 37, 48, 51, 52, 53, 58, 62, 64, 65, 67], "kind": [5, 6, 8, 9, 11, 12, 13, 14, 19, 27, 30, 33, 37, 48, 51, 52, 53, 58, 67], "either": [5, 6, 8, 9, 12, 13, 14, 19, 27, 30, 33, 37, 38, 48, 51, 52, 53, 58, 64, 65, 67], "impli": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "specif": [5, 6, 8, 9, 11, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "languag": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "govern": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "permiss": [5, 6, 8, 9, 12, 13, 14, 19, 30, 33, 37, 48, 51, 52, 53, 58, 67], "limit": [5, 6, 7, 8, 9, 12, 13, 14, 19, 27, 30, 33, 37, 48, 51, 52, 53, 58, 65, 67], "atomic_refcnt": 5, "_cnt": 5, "cnt": 5, "dec": 5, "64": [5, 6, 8, 15, 31, 41, 43, 44, 48, 54, 61, 67], "bytetyp": [6, 9], "uint": [6, 7, 9, 10, 15, 22, 31, 41, 43, 48, 49, 59, 65], "8": [6, 7, 9, 10, 15, 31, 48, 65], "buffertyp": [6, 7, 9, 65, 66], "c_ptr": [6, 7, 9, 10, 15, 30, 34, 39, 40, 46, 48, 49, 50, 54, 65], "locidtyp": 6, "chpl_nodeid": [6, 7, 9, 56, 65], "config": [6, 9, 11, 15, 18, 20, 27, 29, 31, 34, 35, 38, 43, 44, 45, 46, 47, 51, 53, 56, 59, 63, 65], "chpl_stringgrowthfactor": 6, "5": [6, 11, 20, 31], "chpl_string_comm_get": 6, "dest": 6, "src_loc_id": 6, "src_addr": 6, "len": [6, 63], "bufferalloc": 6, "requesteds": 6, "bufferrealloc": 6, "buf": [6, 19], "bufferensures": 6, "currents": 6, "buffercopyremot": 6, "buffercopyloc": 6, "bufferfre": 6, "buffercopi": 6, "off": [6, 15, 20, 31, 46], "buffermemcpi": 6, "dst": [6, 56], "src_loc": 6, "src": [6, 62, 64], "dst_off": 6, "src_off": 6, "buffermemcpyloc": 6, "buffermemmoveloc": 6, "buffergetbyt": 6, "bufferequ": 6, "buf1": 6, "off1": 6, "loc1": 6, "buf2": 6, "off2": 6, "loc2": 6, "bufferequalsloc": 6, "_strcmp": 6, "len1": 6, "len2": 6, "createborrowingbuff": [7, 65], "chang": [7, 11, 15, 20, 31, 46, 59, 63, 64, 65], "futur": [7, 11, 15, 20, 26, 31, 46, 59, 63, 64, 65], "which": [7, 11, 19, 20, 27, 65], "borrow": [7, 11, 15, 19, 22, 56, 57, 62, 64, 65], "intern": [7, 18, 19, 20, 31, 65], "buffer": [7, 9, 20, 65], "anoth": [7, 19, 62, 64, 65], "If": [7, 9, 11, 20, 26, 27, 31, 62, 64, 65], "freed": [7, 65], "befor": [7, 18, 20, 27, 62, 65], "access": [7, 20, 27, 37, 65], "undefin": [7, 20, 31, 65], "behavior": [7, 9, 20, 31, 32, 65], "A": [7, 11, 20, 27, 65], "chpl_c_string": [7, 10, 15, 44, 63, 65], "length": [7, 9, 19, 65, 66], "c_string": [7, 15, 65], "deprec": [7, 11, 15, 20, 31, 38, 55, 65], "pleas": [7, 11, 15, 55, 65], "variant": [7, 65], "take": [7, 9, 11, 20, 27, 31, 62, 64, 65], "c_ptrconst": [7, 9, 10, 15, 44, 59, 65], "c_char": [7, 9, 10, 15, 44, 48, 59, 65], "instead": [7, 11, 15, 19, 20, 55, 65], "strlen": [7, 65], "alloc": [7, 20, 59, 65], "exclud": [7, 20, 65], "termin": [7, 65], "null": [7, 65], "number": [7, 9, 11, 20, 27, 31, 54, 65], "chpl_createbyteswithliter": 7, "offset": [7, 9, 14, 19, 20, 31, 46, 65], "createadoptingbuff": [7, 65], "ownership": [7, 62, 64, 65], "deiniti": [7, 62, 64, 65], "": [7, 9, 11, 15, 20, 27, 31, 37, 38, 44, 64, 65, 67], "createcopyingbuff": [7, 65], "_byte": 7, "readdeserializ": [7, 11, 19, 20, 38, 62, 64], "bufflen": [7, 9, 65], "buffsiz": [7, 9, 65], "buff": [7, 9, 65], "nil": [7, 15, 20, 23, 27, 31, 46, 62, 64, 65], "isown": [7, 38, 48, 65], "locale_id": [7, 9, 65], "deseri": [7, 10, 11, 19, 20, 38, 62, 64], "reader": [7, 10, 11, 19, 20, 38, 62, 64], "ingbuff": [7, 65], "byteindic": [7, 65], "numbyt": [7, 65], "item": [7, 65], "byteindex": [7, 9, 65], "tobyt": [7, 65], "join": [7, 65], "istupl": [7, 9, 20, 26, 65], "ir": [7, 9, 11, 15, 26, 65], "_iteratorrecord": [7, 9, 11, 15, 20, 26, 65], "rang": [7, 9, 10, 11, 12, 19, 20, 22, 26, 27, 31, 46, 65], "get": [7, 27, 33, 65], "execut": [7, 20, 27, 65], "shallow": [7, 65], "deep": [7, 65], "c_str": [7, 65], "ha": [7, 11, 15, 19, 20, 26, 27, 31, 59, 64, 65], "move": [7, 11, 26, 64, 65], "ctype": [7, 15, 50, 65], "share": [7, 15, 20, 62, 64, 65], "call": [7, 9, 11, 20, 25, 31, 37, 62, 64, 65], "safe": [7, 15, 64, 65], "whose": [7, 31, 65], "home": [7, 65], "properti": [7, 38, 65], "enforc": [7, 65], "remot": [7, 33, 37, 65], "program": [7, 20, 26, 27, 59, 65], "halt": [7, 20, 31, 65], "mybyt": 7, "hello": [7, 65], "differentlocal": 7, "printf": [7, 65], "point": [7, 62, 65], "underli": [7, 11, 20, 65], "valid": [7, 9, 20, 65], "same": [7, 11, 20, 27, 59, 64, 65], "ascii": 7, "charact": [7, 9, 65], "singl": [7, 11, 15, 20, 38, 65], "th": [7, 20, 31, 65], "over": [7, 9, 11, 19, 20, 31, 62, 64, 65], "chpl_byte": [7, 65], "r": [7, 9, 10, 11, 20, 31, 46, 50, 65], "slice": [7, 20, 31, 65], "empti": [7, 20, 23, 31, 38, 62, 65], "complet": [7, 38, 65], "insid": [7, 65], "compil": [7, 11, 15, 20, 26, 31, 62, 64, 65], "check": [7, 20, 31, 65], "fast": [7, 11, 20, 26, 65], "disabl": [7, 39, 65], "made": [7, 65], "zero": [7, 31, 64, 65], "isempti": [7, 11, 20, 31, 65], "startswith": [7, 65], "pattern": [7, 65], "start": [7, 9, 31, 62, 64, 65], "given": [7, 20, 31, 59, 65], "match": [7, 59, 64, 65], "against": [7, 65], "begin": [7, 9, 65], "endswith": [7, 65], "end": [7, 20, 31, 39, 59, 65], "find": [7, 11, 47, 65], "whole": [7, 65], "first": [7, 9, 10, 11, 15, 20, 31, 37, 45, 65], "occurr": [7, 10, 65], "left": [7, 20], "rfind": [7, 65], "right": [7, 19, 20, 38, 65], "count": [7, 9, 11, 20, 27, 31, 64, 65], "substr": [7, 10, 65], "time": [7, 11, 62, 64, 65], "occur": [7, 11, 20, 65], "replac": [7, 9, 15, 65], "make": [7, 19, 20, 26, 64, 65], "less": [7, 11, 65], "up": [7, 20, 27, 65], "split": [7, 65], "sep": [7, 9, 65], "maxsplit": [7, 9, 65], "ignoreempti": [7, 9, 65], "delimit": [7, 65], "break": [7, 65], "chunk": [7, 65], "neg": [7, 20, 31, 65], "abov": [7, 9, 11, 20, 65], "whitespac": [7, 65], "maximum": [7, 27], "concaten": [7, 65], "pass": [7, 9, 11, 62, 64, 65], "receiv": [7, 20, 65], "insert": [7, 65], "them": [7, 27, 65], "10": [7, 11, 20, 31, 65], "d": [7, 11, 19, 20, 31, 32, 46, 47, 65], "writeln": [7, 31, 65], "print": [7, 18, 59, 65], "myjoinedtupl": [7, 65], "myjoinedarrai": [7, 65], "arrai": [7, 9, 11, 15, 19, 20, 31, 46, 59, 65], "tupl": [7, 9, 11, 19, 20, 31, 43, 65], "strip": [7, 65], "char": [7, 9, 65], "n": [7, 9, 15, 20, 65], "lead": [7, 9, 26, 65], "trail": [7, 9, 65], "set": [7, 20, 27, 31, 38, 43, 62], "remov": [7, 19, 20, 31, 65], "appropri": [7, 65], "partit": [7, 65], "3": [7, 9, 11, 20, 31, 65], "separ": 7, "consist": [7, 65], "section": [7, 27, 28, 65], "after": [7, 20, 62, 64, 65], "found": [7, 11, 20, 27, 65], "two": [7, 31, 43, 62, 64, 65], "dedent": [7, 65], "column": [7, 9, 65], "ignorefirst": [7, 9, 65], "subject": [7, 11, 20, 46, 59, 63, 65], "indent": [7, 65], "line": [7, 65], "multi": [7, 65], "sourc": [7, 50, 62, 64, 65], "output": [7, 31, 65], "determin": [7, 9, 31, 38, 65], "level": [7, 65], "common": [7, 19, 65], "across": [7, 20, 65], "tab": [7, 65], "space": [7, 20, 65], "consid": [7, 20, 65], "treat": [7, 65], "so": [7, 19, 20, 25, 31, 62, 65], "infer": [7, 38, 65], "ignor": [7, 27, 65], "decod": [7, 9], "polici": [7, 9, 15, 19, 65], "decodepolici": [7, 9, 65], "strict": [7, 9, 65], "utf": [7, 9, 65], "malform": [7, 9, 65], "action": [7, 65], "rais": [7, 9, 65], "error": [7, 9, 11, 15, 20, 31, 40, 62, 64, 65], "drop": [7, 9, 64, 65], "silent": [7, 9, 65], "escap": [7, 9, 65], "illeg": [7, 9, 65], "privat": [7, 19, 31, 64, 65], "codepoint": [7, 9, 65], "decodeerror": [7, 65], "isupp": [7, 65], "uppercas": [7, 65], "z": [7, 65], "uncas": [7, 65], "letter": [7, 65], "extend": 7, "decim": 7, "larger": 7, "127": 7, "least": [7, 65], "lowercas": [7, 65], "islow": [7, 65], "isspac": [7, 65], "v": [7, 31, 37, 65], "isalpha": [7, 65], "alphabet": [7, 65], "za": [7, 65], "isdigit": [7, 65], "digit": [7, 65], "9": [7, 20, 31, 65], "isalnum": [7, 65], "alphanumer": [7, 65], "z0": [7, 65], "isprint": [7, 65], "printabl": [7, 65], "istitl": [7, 65], "preced": [7, 65], "describ": [7, 11, 20, 65], "met": [7, 65], "tolow": [7, 65], "convert": [7, 11, 65], "counterpart": [7, 65], "remain": [7, 20, 59], "untouch": 7, "toupper": [7, 65], "totitl": [7, 65], "titl": 7, "capit": [7, 65], "lh": [7, 9, 12, 15, 19, 20, 31, 38, 58, 62, 64, 65], "append": [7, 9, 27, 65], "appendbytevalu": 7, "tohexadecim": 7, "resulttyp": [7, 31], "comput": [7, 20, 27, 37, 46], "hexadecim": 7, "represent": 7, "rhs_c": 7, "s0": [7, 9, 10, 65], "s1": [7, 9, 10, 31, 63, 65], "repeat": [7, 65], "commut": [7, 65], "hash": [7, 20, 22, 65], "_real_cast_help": [8, 67], "isimag": [8, 67], "chpl_anyr": [8, 10, 15, 67], "chpl_anyimag": [8, 10, 15, 67], "chpl_anycomplex": [8, 10, 11, 15, 67], "chpl_short_string_s": 9, "c_int": [9, 50], "chpl__inplacebuff": 9, "chpl__getinplacebufferdata": 9, "chpl__getinplacebufferdataforwrit": 9, "__serializehelp": 9, "shortdata": 9, "cachednumcodepoint": [9, 65], "enum": [9, 11, 15, 22, 23, 27, 31, 37, 46, 58], "what": [9, 20], "invalid": [9, 65], "0xxx": 9, "0xdcxx": 9, "constant": [9, 11, 15, 23, 27, 31, 37, 46, 58], "encodepolici": [9, 65], "unescap": [9, 65], "utf8": [9, 65], "encod": [9, 65], "directli": [9, 62, 64, 65], "recov": [9, 65], "showstringbytesinitdeprwarn": 9, "surrogateescap": 9, "0xdc": 9, "getcstr": 9, "decodebytebuff": 9, "factori": [9, 11], "c": [9, 10, 20, 65], "It": [9, 11, 19, 20, 27, 31, 62, 64], "try": [9, 11], "out": [9, 15, 20, 23, 25, 56, 62, 64], "sequenc": [9, 31, 65], "doesn": 9, "correspond": [9, 11, 20, 27, 43, 59, 65], "document": 9, "differ": [9, 27, 31, 65], "decodehelp": 9, "allowesc": 9, "wrapper": [9, 38], "qio_decode_char_buf": 9, "qio_decode_char_buf_esc": 9, "errorcod": 9, "cp": [9, 48], "nbyte": 9, "arg": [9, 11, 15, 18, 20, 25, 26, 27, 31, 40, 44, 49, 51, 52, 53, 55], "decoderet": 9, "chr": 9, "initwithborrowedbuff": 9, "initwithownedbuff": 9, "initwithnewbuff": 9, "getview": 9, "checkmisalign": 9, "getslic": 9, "getindextyp": 9, "doreplac": 9, "needl": [9, 10], "dosplithelp": 9, "localx": 9, "localsep": 9, "splitcount": [9, 65], "dosplit": 9, "dosplitwsnoenchelp": 9, "nosplit": [9, 65], "limitsplit": [9, 65], "iend": [9, 65], "dosplitwsnoenc": 9, "dosearchnoenc": 9, "region": 9, "fromleft": [9, 65], "startsendswith": 9, "ishomogeneoustupl": [9, 20, 43], "dojoiniter": 9, "dojoin": 9, "isarrai": [9, 19], "dopartit": 9, "doded": 9, "resizebufferforappend": 9, "doappend": 9, "doappendsomebyt": 9, "bytecarr": 9, "c_arrai": 9, "ncodepoint": 9, "resizebuff": 9, "reinitwithnewbuff": 9, "numcodepoint": [9, 65, 66], "reinitwithownedbuff": 9, "doassign": 9, "domultipli": 9, "doconcat": 9, "dostripnoenc": 9, "doeq": 9, "t1": [9, 20, 43], "t2": [9, 20, 43], "dolessthan": 9, "dogreaterthan": 9, "dolessthanoreq": 9, "dogreaterthanoreq": 9, "gethash": 9, "countnumcodepoint": 9, "isinitialbyt": 9, "multibyt": [9, 65], "_findstartofnextcodepointfrombyt": 9, "includ": [9, 19, 20, 64, 65], "_cleanupfornumericcast": 9, "byte_isascii": 9, "byte_iswhitespac": 9, "byte_isprint": 9, "byte_isalpha": 9, "byte_isupp": 9, "byte_islow": 9, "byte_isdigit": 9, "byte_isalnum": 9, "byte_toupp": 9, "byte_tolow": 9, "chpl__initcopi": [10, 11, 15, 38, 55, 62], "definedconst": [10, 11, 15, 19, 20, 38, 55, 62], "chpl__autocopi": [10, 11, 15, 38, 62], "_niltyp": [10, 15, 62, 64], "_string_contain": [10, 65], "indexof": 10, "string_index_of": 10, "haystack": 10, "chpl_free_c_str": 10, "numprivateobject": 11, "nullpid": [11, 19], "debugbulktransf": 11, "usebulktransf": 11, "usebulktransferstrid": 11, "usebulkptrtransf": 11, "disableconstdomainopt": 11, "debugoptimizedswap": [11, 46], "podvalaccess": 11, "usebulktransferdist": 11, "arrayasvecgrowthfactor": [11, 19], "debugarrayasvec": 11, "logdistarreltaccess": 11, "logallarreltaccess": 11, "_isprivat": 11, "_newprivatizedclass": 11, "_freeprivatizedclass": 11, "pid": [11, 19], "rootclass": [11, 15, 22], "_reprivat": 11, "_makeindextupl": 11, "_tupl": [11, 15, 20, 26, 31, 43, 46], "concept": 11, "expand": [11, 20, 31], "_newarrai": 11, "_getdistribut": 11, "chpl__buildarrayruntimetyp": 11, "chpl__convertruntimetypetovalu": [11, 20], "isnoinit": [11, 20], "chpl__convertvaluetoruntimetyp": [11, 20], "chpl_warn_domain_liter": 11, "unset": [11, 43], "liter": [11, 31], "detect": 11, "dure": [11, 27, 64], "pars": 11, "expr": 11, "through": [11, 20], "variou": [11, 27], "phase": 11, "regular": [11, 27], "would": [11, 20], "nice": 11, "second": 11, "handl": [11, 20], "multipl": [11, 19, 64, 65], "howev": [11, 20, 27], "possibl": [11, 20], "atm": 11, "due": [11, 19, 27, 32], "queri": [11, 20, 27], "arrayliterallowbound": 11, "defaultlowbound": [11, 15], "capturediteratorlowbound": 11, "chpl__buildarrayexpr": 11, "elem": 11, "k": [11, 25, 67], "chpl_computeunifiedtyp": 11, "chpl_computeunifiedtypehelp": 11, "j": [11, 46], "chpl__buildassociativearrayexpr": 11, "chpl_increfcountsfordomainsinarrayelttyp": 11, "basearr": [11, 19, 20], "chpl_decrefcountsfordomainsinarrayelttyp": 11, "chpl__distribut": 11, "chpl__isarrayview": 11, "chpl__getactualarrai": 11, "chpl__isdomainview": 11, "chpl__getactualdomain": 11, "domaintyp": [11, 20], "chpl__distributionfromdomainruntimetyp": 11, "rtt": [11, 20], "chpl__elttypefromarrayruntimetyp": 11, "chpl__instancetypefromarrayruntimetyp": 11, "chpl__instancetypefromdomainruntimetyp": 11, "chpl__buildindextyp": 11, "chpl__checkretelttypematch": 11, "chpl__checkoutelttypematch": 11, "dmap": [11, 46], "avail": [11, 20, 26, 27], "chpl__builddisttyp": 11, "issubtyp": [11, 15, 19, 20, 26, 62, 64], "_to_borrow": [11, 15, 19], "chpl__builddistvalu": 11, "own": [11, 15, 20, 23, 31, 33, 37, 40, 62, 64], "chpl__builddistdmapvalu": 11, "d1": [11, 20], "_distribut": [11, 15, 19], "d2": [11, 20], "chpl_defaultcompar": [11, 20], "_arrai": [11, 22], "_pid": [11, 19, 20, 49], "_instanc": [11, 19, 20, 27, 49, 57], "_unown": [11, 19, 20, 49], "chpl__promotiontyp": [11, 20, 31], "_valu": [11, 12, 19, 20, 27], "element": [11, 20, 31], "repres": [11, 20, 27, 31, 59, 65], "multidimension": [11, 20], "per": [11, 20, 37], "dimens": [11, 20, 31], "fullidxtyp": [11, 20], "dimension": 11, "associ": [11, 15, 20, 27], "_dom": 11, "hasunitstrid": [11, 19, 20, 31, 46], "hasposnegunitstrid": [11, 19, 20, 31], "isspars": [11, 19, 20], "isassoci": [11, 19, 20], "dens": [11, 20], "rectangular": [11, 20], "irregular": [11, 20], "checkaccess": 11, "checkslic": 11, "chpl__istupleofrang": [11, 20], "localaccess": 11, "_validrankchangearg": [11, 20], "bound": [11, 19, 20, 31, 46], "spars": [11, 19, 20], "parent": [11, 20, 27], "boundari": [11, 20], "checkrankchang": 11, "localslic": [11, 20], "trycopi": 11, "chpl__localslicedefaultaritharrhelp": 11, "sizea": [11, 12, 20, 31], "chpl_checkarrargdom": 11, "formaldom": 11, "runtimecheck": 11, "reindex": 11, "newdomain": 11, "isrectangular": [11, 12, 19, 20, 49], "view": [11, 20], "must": [11, 20, 64], "6": [11, 20], "15": 11, "rea": 11, "newdim": 11, "implicitli": [11, 26], "4": [11, 31], "13": 11, "14": 11, "16": [11, 15, 23, 31], "deserializefrom": [11, 19, 20, 38], "irv": [11, 19], "displayrepresent": [11, 19, 20, 31], "targetlocal": [11, 19, 20], "been": [11, 15, 20, 27, 64], "hassinglelocalsubdomain": [11, 20], "subdomain": [11, 20], "localsubdomain": [11, 20], "here": [11, 19, 20, 27], "place": [11, 19, 20], "chpl__isdense1darrai": 11, "last": [11, 20, 31, 38, 64], "whether": 11, "lexicograph": 11, "earliest": 11, "unspecifi": 11, "lowbound": [11, 20, 31], "w": [11, 15, 31], "low": [11, 20, 31, 65], "min": [11, 32, 43], "shape": [11, 20], "assum": [11, 20, 62, 64, 65], "unsupport": [11, 20], "_scan": 11, "op": [11, 15, 19, 32, 38, 46], "reflect": [11, 26], "canresolvemethod": 11, "doiscan": [11, 46], "iteratoryieldslocalel": [11, 20], "chpl_isnondistributedarrai": 11, "isirregular": [11, 20], "g": [11, 20, 31], "_do_destroy_arr": 11, "_do_destroy_arrai": 11, "_deinitelementsisparallel": 11, "_deinitel": [11, 45], "format": 11, "io": [11, 18, 25, 46], "formattedio": 11, "et": 11, "iscollapseddimens": 11, "chpl__countrang": 11, "lack": 11, "test": 11, "chpl__serializeassign": 11, "chpl__compatibleforbulktransf": 11, "_telt": 11, "chpl__supporteddatatypeforbulktransf": 11, "sync": [11, 15, 38], "checkarrayshapesuponassign": 11, "forswap": 11, "chpl__protoslic": [11, 12], "initcopi": 11, "chpl__uncheckedarraytransf": 11, "chpl__initafterbulktransf": 11, "chpl__compatibleforwideptrbulktransf": 11, "chpl__bulktransferptrarrai": 11, "chpl__bulktransferarrai": 11, "ad": [11, 20, 31], "bd": 11, "destview": 11, "srcview": 11, "chpl__transferarrai": 11, "alwaysseri": 11, "istupletyp": [11, 43], "iscoerc": [11, 20, 43], "_desync": 11, "_syncvar": [11, 38], "_singlevar": [11, 38], "isatomictyp": [11, 38], "Or": 11, "we": [11, 19, 20, 31, 65], "explicitli": [11, 20, 26], "overload": [11, 15, 19, 20, 31], "sinc": [11, 20], "fix": [11, 20, 27], "issynctyp": 11, "direct": [11, 31, 38], "modifi": [11, 20, 38], "issingletyp": 11, "writeef": [11, 38], "explicit": [11, 15, 38], "xd": 11, "yd": 11, "reshap": 11, "linear": 11, "localizeconstdomain": 11, "debuglocalizedconstdomain": 11, "chpl__coercehelp": 11, "dsttype": [11, 15, 20], "chpl__coercecopi": [11, 20], "chpl__coercemov": [11, 20], "_domain": [11, 20], "desyncelttyp": 11, "chpl__unref": [11, 15, 43], "chpl_iteratorhasdomainshap": [11, 26], "chpl_iteratorhasrangeshap": [11, 26], "chpl_iteratorfromforexpr": [11, 26], "chpl__initcopy_shapehelp": 11, "chpl__throwerroruncheck": 11, "chpl_arraytoptrerrorhelp": 11, "chpl_arraytoptr": 11, "casttovoidstar": 11, "chpl_arraytoptrconst": 11, "chpl__createprotoslic": 12, "slicingexpr": 12, "chpl__createprotosliceargcheck": 12, "chpl__createconstprotoslic": 12, "chpl__ave_exprcanbeprotoslic": 12, "base": [12, 19, 20, 26, 31, 38], "idxexpr": 12, "chpl__ave_protoslicessupportassign": 12, "isconst": 12, "ptrtoarr": 12, "slicingexprtyp": 12, "isrankchang": 12, "domorrang": 12, "isprotoslic": 12, "chpl_srcaggregatorfor": 13, "isdomain": 13, "chpl_dstaggregatorfor": 13, "chpl__arrayiteratoryieldslocalel": 13, "chpl__staticautolocalcheck": 14, "accessbas": 14, "loopdomain": 14, "hasoffset": 14, "chpl__dynamicautolocalcheck": 14, "chpl__ala_offsetcheck": 14, "chpl__isarrayviewwithdifferentdist": 14, "submodul": [15, 65], "c_fn_ptr": 15, "chpl_c_fn_ptr": [15, 44], "procedur": [15, 31], "rootlocaleiniti": 15, "enablepostfixbangcheck": 15, "chpl_config_has_valu": 15, "module_nam": 15, "chpl_config_get_valu": 15, "chpl_stringminallocs": 15, "warnmaximalrang": 15, "chpl_unstableinternalsymbolfortest": 15, "assocparsafedefault": [15, 20], "sassocparsafedefault": 15, "turn": [15, 31], "par": 15, "warn": [15, 20, 31], "just": 15, "like": [15, 20, 26, 27], "snoparsafewarn": 15, "noparsafewarn": 15, "suppress": [15, 20], "about": [15, 20, 27, 32], "miss": 15, "mode": [15, 37], "_object": 15, "object": [15, 62, 64, 65], "abstract": [15, 27], "root": 15, "fcfsusepointerimplement": 15, "32": [15, 27, 31, 42, 44, 51, 53, 63, 65], "imag": [15, 22], "complex": [15, 22, 43], "128": [15, 43], "opaqu": 15, "noth": [15, 31, 45], "isuint": [15, 31], "inlin": 15, "do": [15, 20, 27, 31, 38, 46, 64], "_intexphelp": 15, "_exphelp": 15, "_expbasehelp": 15, "_basepowertwo": 15, "_canoptimizeexp": 15, "istru": 15, "bitshiftcheck": 15, "postfix": [15, 62, 64], "chpl_statementlevelsymbol": 15, "_cond_test": [15, 65], "_cond_invalid": 15, "isnonneg": 15, "re": [15, 19, 46], "im": 15, "_i2r": 15, "_r2i": 15, "arrayinit": 15, "heuristicinit": 15, "noinit": 15, "serialinit": 15, "parallelinit": 15, "gpuinit": 15, "chpl_defaultarrayinitmethod": 15, "chpl_defaultgpuarrayinitmethod": 15, "chpl_gpu_mem_strategi": 15, "array_on_devic": 15, "els": [15, 19, 31, 45, 46, 64], "chpl_arrayinitmethodruntimeselect": 15, "chpl_setarrayinitmethod": 15, "initmethod": 15, "chpl_getarrayinitmethod": 15, "chpl_shoulddogpuinit": 15, "init_elts_method": 15, "init_elt": 15, "lo": [15, 46], "chpl_mem_descint_t": [15, 54], "chpl_ddataresizepolici": [15, 19], "normalinit": [15, 19], "skipinit": 15, "skipinitbutclearmem": 15, "_ddata": [15, 20, 23, 45, 46], "chpl_isddata": 15, "_ddata_shift": 15, "shift": [15, 31], "_ddata_sizeof_el": 15, "c_size_t": [15, 50, 51, 52, 53, 55, 59], "_ddata_allocate_noinit": 15, "callpostalloc": [15, 46], "subloc": [15, 27, 51, 53, 55], "c_sublocid_non": [15, 27], "haltonoom": 15, "_try_ddata_alloc": 15, "_ddata_allocate_noinit_gpu_shar": 15, "_ddata_allocate_postalloc": 15, "_ddata_alloc": 15, "_ddata_supports_realloc": 15, "oldddata": 15, "oldsiz": [15, 19, 23, 45], "newsiz": [15, 19, 23, 45], "_ddata_fil": 15, "ddata": 15, "hi": [15, 46], "fill": [15, 20], "_ddata_realloc": 15, "_ddata_fre": 15, "_ref": 15, "_val": 15, "chpl_rt_reset_task_spawn": 15, "chpl_resettaskspawn": 15, "numtask": [15, 46], "useatomictaskcnt": 15, "defaultatomictaskcount": 15, "commdiagstrackendcount": 15, "endcountdiagsmanag": 15, "contextmanag": [15, 20], "taskinfo": 15, "chpl_task_infochapel_t": [15, 39, 40], "prevdiagsdisabledv": 15, "entercontext": [15, 20], "exitcontext": [15, 20], "unus": 15, "_endcountbas": [15, 40], "chpl_taskerror": 15, "_endcount": 15, "ityp": 15, "tasktyp": 15, "taskcnt": 15, "_endcountalloc": 15, "forcelocaltyp": 15, "_remoteendcounttyp": [15, 39], "_endcountfre": 15, "_upendcount": 15, "countrunningtask": 15, "chpl_comm_unordered_task_f": 15, "chpl_comm_task_cr": 15, "chpl_comm_task_end": 15, "chpl_after_forall_f": 15, "_downendcount": 15, "err": [15, 20, 40], "_waitendcount": 15, "_updynamicendcount": 15, "_downdynamicendcount": 15, "chpl_waitdynamicendcount": 15, "transmut": 15, "routin": [15, 20], "signatur": [15, 19], "chpl_typesupportsprimitivecast": 15, "chpl_checkcastabstractenumerror": 15, "enumtyp": 15, "float": 15, "chpl_castunmanagederror": 15, "typestr": 15, "_to_unmanag": 15, "_to_nonnil": [15, 62], "ispropersubtyp": [15, 62, 64], "chpl__autodestroi": [15, 38, 62, 64], "chpl__delet": 15, "func": [15, 49], "constructor": 15, "syntax": 15, "rettyp": 15, "isiter": [15, 62, 64], "ic": [15, 26], "_iteratorclass": [15, 26], "not_an_iter": 15, "isnumerictyp": [15, 20], "isintegralorrealtyp": 15, "swap": [15, 38, 62, 64], "isgenerictyp": 15, "isnilableclasstyp": 15, "isnonnilableclasstyp": 15, "isborrowedorunmanagedclasstyp": 15, "qio_style_element_str": 15, "qio_style_element_complex": 15, "qio_style_element_arrai": 15, "qio_style_element_aggreg": 15, "qio_style_element_tupl": 15, "qio_style_element_byte_ord": 15, "qio_style_element_is_native_byte_ord": 15, "qio_style_element_skip_unknown_field": 15, "qio_array_format_spac": 15, "qio_array_format_chpl": 15, "qio_array_format_json": 15, "qio_aggregate_format_brac": 15, "qio_aggregate_format_chpl": 15, "qio_aggregate_format_json": 15, "qio_tuple_format_chpl": 15, "qio_tuple_format_spac": 15, "qio_tuple_format_json": 15, "chpl_moduledeinit": 15, "modulenam": [15, 44], "deinitfun": [15, 44], "prevmodul": 15, "chpl_moduledeinitfun": 15, "chpl_checklegaltypefieldaccessor": 15, "thisarg": 15, "fieldtyp": 15, "fieldnam": 15, "_to_nil": 15, "chpl_checkborrowifvar": 15, "iswhil": 15, "_removed_cast": 15, "chpl_supportsboundedcoforal": 15, "zipper": 15, "chpl_boundedcoforalls": 15, "chpl_field_neq": 15, "chpl_field_": 15, "gener": [15, 19, 20, 27, 31, 32, 43], "comparison": 15, "field": 15, "isarraytyp": 15, "chpl_field_lt": 15, "chpl_field_gt": 15, "chpl__bothloc": 15, "yieldexecut": [16, 55], "chpl__verifytypecontext": 17, "debug": 18, "around": 18, "problem": 18, "resolut": 18, "commonli": [18, 27], "stdout": 18, "facil": 18, "chpl": 18, "chpl_debug_stringifi": 18, "chpl_debug_writeln": 18, "chpl__testparflag": 18, "chpl__testparon": 18, "chpl__testparstart": 18, "chpl__testparstop": 18, "chpl__testpar": 18, "chpl__testparwriteln": 18, "_do_destroi": [19, 20], "clone": [19, 32], "newrectangulardom": 19, "stridekind": [19, 20, 31, 46], "boundkind": [19, 20, 31, 46], "both": [19, 20, 31, 46], "newassociativedom": 19, "newsparsedom": 19, "idxtolocal": 19, "_doms_containing_dist": 19, "_domslock": 19, "chpl_localspinlock": [19, 28, 32, 45, 46], "_free_when_no_dom": 19, "remove_dom": 19, "basedom": 19, "add_dom": 19, "dsinewassociativedom": [19, 46], "dsinewsparsedom": [19, 46], "dsirequiresprivat": 19, "trackdomain": [19, 46], "dsitrackdomain": [19, 46], "singleton": [19, 46], "_arrs_head": 19, "_arrs_containing_dom": 19, "_arrslock": 19, "_free_when_no_arr": 19, "_arr": 19, "dnserror": 19, "trackarrai": 19, "remove_arr": 19, "rmfromlist": 19, "add_arr": 19, "lock": [19, 28], "addtolist": 19, "remove_containing_arr": 19, "add_containing_arr": 19, "linksdistribut": [19, 45, 46, 47], "dsilinksdistribut": [19, 45, 46, 47], "dsisupportsoffsetautolocalaccess": 19, "dsiautolocalaccessoffsetcheck": 19, "dsiiteratoryieldslocalel": [19, 46], "isdefaultrectangular": [19, 20, 46], "isslicedomainview": 19, "getbasearrtyp": 19, "dsiadd": [19, 45, 47], "dsiremov": [19, 45, 47], "basesparsedomimpl": [19, 47], "basesparsedom": [19, 20], "nnzdom": [19, 47], "dsibulkadd": 19, "datasort": [19, 20, 47], "isuniqu": [19, 20, 47], "addon": [19, 20, 47], "nillocal": [19, 20, 27, 47], "dsibulkaddnopreserveind": 19, "bulkadd_help": [19, 47], "indsdom": [19, 47], "_grow": 19, "factor": 19, "grow": [19, 23], "necessari": 19, "_shrink": 19, "shrink": 19, "_bulkgrow": 19, "_countdupl": 19, "bulkadd_prepareind": 19, "cmp": 19, "__getactualinsertpt": 19, "dsiclear": [19, 45, 47], "sparseindexbuff": [19, 20], "obj": [19, 30, 62, 64], "bufdom": 19, "cur": 19, "commit": [19, 20], "parentdom": [19, 20, 47], "nnz": 19, "getnnz": [19, 47], "boundscheck": 19, "candodirectassign": 19, "dsidim": [19, 46], "dsinumindic": [19, 45, 46], "dsisiz": 19, "baseassociativedom": [19, 20, 45], "prev": 19, "next": 19, "_deceltrefcount": 19, "_resizepolici": 19, "dsistaticfastfollowcheck": 19, "leadtyp": 19, "chpl_setresizepolici": 19, "chpl_iselementtypedefaultinitializ": 19, "chpl_iselementtypenonnilableclass": 19, "chpl_unsafeassignisclasselementnil": [19, 46], "manag": [19, 20, 27, 46, 62, 64], "chpl_unsafeassignhaltuninitializedel": 19, "dsielementdeinitializationcomplet": [19, 45, 46], "dsirealloc": [19, 46], "dsipostrealloc": [19, 46], "_purg": 19, "_resiz": 19, "old_map": 19, "sparseshiftarrai": 19, "shiftrang": 19, "initrang": 19, "sparseshiftarrayback": 19, "sparsebulkshiftarrai": 19, "shiftmap": 19, "oldnnz": 19, "_defaultinitslot": [19, 45], "slot": [19, 23, 45], "_deinitslot": [19, 45], "_startrehash": [19, 45], "_finishrehash": [19, 45], "_moveelementduringrehash": [19, 45], "oldslot": [19, 23, 45], "newslot": [19, 23, 45], "dsisupportsalignedfollow": 19, "deceltcountsifneed": 19, "subclass": 19, "everi": 19, "put": 19, "reli": [19, 25], "being": [19, 26], "refer": [19, 62, 64], "instanti": 19, "basearroverrectangulardom": 19, "overridden": 19, "look": 19, "wai": [19, 64], "narrow": 19, "those": [19, 20, 59], "box": 19, "baserectangulararr": [19, 46], "basesparsearr": 19, "veri": [19, 20, 28], "basic": [19, 27], "have": [19, 20, 27, 31], "flexibl": 19, "defaultsparsedom": [19, 47], "basesparsearrimpl": [19, 47], "helper": 19, "go": 19, "_delete_dist": 19, "_delete_dom": 19, "_delete_arr": 19, "chpl_assigndomainwithgetsetindic": 19, "chpl_assigndomainwithindsitersafeforremov": 19, "defaulthashtableresizethreshold": [20, 23], "fraction": 20, "how": [20, 27], "full": [20, 23, 38], "request": [20, 26], "map": [20, 65], "resiz": [20, 23], "50": 20, "exclus": [20, 32], "lower": 20, "potenti": [20, 65], "improv": [20, 27], "tabl": [20, 23, 45], "fewer": 20, "collis": 20, "higher": 20, "help": 20, "save": 20, "impact": [20, 62, 64], "structur": 20, "nonegativestridewarn": 20, "snonegativestridewarn": 20, "_getdomain": 20, "tupleofrangesslic": 20, "chpl__builddomainruntimetyp": 20, "chpl__buildsparsedomainruntimetyp": 20, "chpl__buildsparsedomainruntimetypeforparentdomain": 20, "chpl__buildsubdomaintyp": 20, "chpl__builddomainexpr": 20, "kei": [20, 23], "chpl__ensuredomainexpr": 20, "chpl__isrectangulardomtyp": 20, "chpl__issparsedomtyp": 20, "chpl__parentdomainfromdomainruntimetyp": 20, "chpl__domainfromarrayruntimetyp": 20, "chpl_isassociativedomclass": 20, "dc": 20, "chpl__checkdomainsmatch": 20, "chpl_countdomhelp": 20, "nordadd": 20, "chpl_samedomainkind": 20, "thei": [20, 25, 31, 59, 64], "exist": 20, "present": [20, 27, 59], "sd": 20, "chpl__checktupirregdomassign": 20, "msg": [20, 31], "chpl__islegalrecttupdomassign": 20, "align": [20, 31, 54], "chpl_domaindistislayout": 20, "prevent": 20, "user": [20, 26, 31], "datatyp": 20, "unintention": 20, "public": 20, "favor": 20, "1d": [20, 46], "chpl_integralidxtyp": [20, 31, 46], "isposnegon": [20, 31], "numarg": 20, "dimit": [20, 47], "chpl_shapea": 20, "becaus": [20, 31, 59], "tend": 20, "promot": 20, "confus": 20, "boundingbox": [20, 31], "lowest": 20, "high": [20, 31, 65], "highest": 20, "pure": 20, "wherea": [20, 31], "highbound": [20, 31], "chpl_checkelttyp": 20, "chpl_checknegativestrid": 20, "buildarrai": 20, "trycreatearrai": 20, "invok": [20, 26, 31], "attempt": [20, 64], "instanc": [20, 27, 38, 62, 64], "enough": 20, "satisfi": 20, "thrown": [20, 26], "continu": 20, "oppos": 20, "thu": 20, "stop": 20, "reliabl": 20, "configur": [20, 27], "heap": 20, "chpl_gasnet_seg": 20, "larg": 20, "dynam": 20, "overcommit": 20, "caus": [20, 25, 27, 37, 59], "succe": 20, "physic": [20, 27], "bu": 20, "doitrycreatearrai": [20, 46], "arrayoomerror": 20, "initexpr": 20, "arrayelttyp": 20, "buildarraywith": 20, "allocs": [20, 46], "unsafeassignmanag": 20, "context": 20, "statement": [20, 26], "initializ": 20, "bodi": 20, "hand": [20, 38], "side": [20, 38], "had": 20, "unsafeassign": 20, "formal": [20, 31], "newli": 20, "uniniti": 20, "usual": 20, "_lhsinstanc": 20, "_lhspid": 20, "_rhsinstanc": 20, "_rhspid": 20, "_oldlhsdomaincopi": 20, "_check": 20, "_isactivemanag": 20, "_arraysoverlhsdom": 20, "postinit": 20, "runtim": [20, 27, 31], "safeti": 20, "enabl": [20, 31], "isclassreferencenil": 20, "_checkthatarrayshapeissupport": 20, "_checkthatindexmatchesarrayshap": 20, "_isbasearrclasselementnil": 20, "iselementiniti": 20, "_checkifallelementsareiniti": 20, "_ensurenolongermanagingthi": 20, "_isarrayownedbylhsdomain": 20, "_moveinitializeel": 20, "_checknocheckswhennondefaultinitializableelttyp": 20, "newindic": 20, "unsaf": 20, "guarante": 20, "onc": [20, 37, 64], "These": [20, 64], "hold": 20, "done": [20, 62, 64], "mgr": 20, "need": 20, "nilabl": [20, 62, 64], "provid": [20, 26, 27], "leav": [20, 38], "were": 20, "bulkadd": 20, "bulkaddnopreserveind": 20, "createindexbuff": 20, "faster": 20, "spsdom": 20, "someindexiter": 20, "idxbuf": 20, "snippet": 20, "automat": 20, "goe": [20, 62, 64], "scope": [20, 62, 64], "bulk": 20, "flag": [20, 26, 31], "expens": 20, "avoid": 20, "To": 20, "now": [20, 31], "sentinel": [20, 27], "denot": [20, 31], "unknown": 20, "sort": 20, "preserv": [20, 31, 62, 64], "extra": 20, "doe": [20, 26, 31, 38, 64, 65], "duplic": 20, "nearli": 20, "ident": [20, 32, 38], "unsort": 20, "requestcapac": [20, 23], "capac": 20, "indexord": [20, 31], "ordertoindex": [20, 31], "its": [20, 27, 31, 38, 46, 59, 62, 63, 64], "ith": 20, "numer": 20, "checkorderbound": 20, "posit": [20, 31], "contract": [20, 31], "further": 20, "exterior": [20, 31], "portion": [20, 25, 31], "interior": [20, 31], "translat": [20, 31], "chpl__untransl": [20, 31], "setindic": 20, "getindic": 20, "compar": [20, 45], "defaultsparsedist": 20, "supportsautolocalaccess": 20, "supportsoffsetautolocalaccess": 20, "autolocalaccessoffsetcheck": 20, "trycast": [20, 31], "chpl_domaintrycastissaf": 20, "illegalargumenterror": [20, 31], "fit": [20, 31], "legal": [20, 31], "chpl_domaintrycasthelp": 20, "chpl_domaincastissaf": 20, "below": [20, 31], "todo": [20, 31], "chpl_domaincasthelp": 20, "makerectangulardomain": 20, "inclus": 20, "chpl_isvalidrangeidxtyp": [20, 31], "scalar": 20, "pairwis": 20, "11": [20, 31], "chpl__defaulthashwrapperinn": 22, "chpl__defaulthashwrapp": 22, "_gen_kei": 22, "chpl__defaulthashcombin": 22, "fieldnum": 22, "chpl_taskid_t": [22, 41], "chpl__hash_statu": 23, "delet": [23, 62, 64], "chpl_tableentri": 23, "statu": 23, "isful": [23, 38], "_allslot": 23, "chpl__rehashhelp": [23, 45], "startrehash": [23, 45], "moveelementduringrehash": [23, 45], "finishrehash": [23, 45], "chpl__hashtabl": [23, 45], "keytyp": 23, "tablenumfullslot": 23, "tablenumdeletedslot": 23, "tables": 23, "rehashhelp": 23, "postponeres": 23, "resizethreshold": 23, "startings": 23, "initialcapac": 23, "isslotful": 23, "allslot": 23, "keysmatch": 23, "key1": 23, "key2": 23, "_findslot": 23, "_lookforslot": 23, "numslot": 23, "findavailableslot": 23, "fillslot": 23, "tableentri": 23, "slotnum": 23, "findfullslot": 23, "clearslot": 23, "maybeshrinkafterremov": 23, "_findpowerof2": 23, "numkei": [23, 45], "allocatedata": 23, "tableelttyp": 23, "allocatet": 23, "rehash": 23, "pull": 25, "stringifi": 25, "don": 25, "circular": 25, "depend": [25, 38], "_can_stringify_direct": 25, "stringify_simpl": 25, "parallel": [26, 27, 46], "construct": [26, 27], "foral": 26, "vectoriz": 26, "vector": 26, "emit": 26, "hint": 26, "backend": 26, "though": 26, "effect": 26, "vari": 26, "target": 26, "prototyp": 26, "mark": 26, "iteratorindex": 26, "iteratorindextyp": 26, "iteratorindextypezip": 26, "iteratortoarrayelementtyp": 26, "thunktoreturntyp": 26, "_thunkrecord": [26, 33], "chpl_elemtypeforreducingiter": 26, "chpl_buildstandinrtt": 26, "domtyp": 26, "arrtyp": [26, 49], "irtyp": 26, "nonrttyp": 26, "dominst": 26, "chpl_triviallead": 26, "chpl_computeiteratorshap": 26, "chpl_iteratorhasshap": 26, "chpl_iteratorshapestatictypeornoth": 26, "chpl_iteratorfromforeachexpr": 26, "_getiter": 26, "_getiteratorzip": 26, "_freeiter": 26, "_tolead": 26, "_toleaderzip": 26, "canresolv": 26, "_tostandalon": 26, "chpl__canhavefastfollow": 26, "chpl__canleadfastfollow": 26, "chpl__staticfastfollowcheck": 26, "chpl__dynamicfastfollowcheck": 26, "_tofollow": 26, "leaderindex": 26, "_tofollowerzip": 26, "_tofollowerzipintern": 26, "_tofastfollow": 26, "singlevalit": 26, "singlerefit": 26, "chpl_nodeid_t": [27, 55, 56], "chpl_sublocid_t": [27, 55], "c_sublocid_ani": 27, "c_sublocid_al": 27, "chpl_isactualsublocid": 27, "localekind": 27, "dummi": 27, "concret": 27, "baselocal": 27, "placehold": 27, "notion": 27, "anywher": 27, "setup": 27, "tree": 27, "properli": 27, "defaultlocal": 27, "dummylocal": 27, "_local": 27, "localeid": 27, "chpl_id": 27, "chpl_localeid": 27, "chpl_name": 27, "_getchildcount": 27, "hostnam": 27, "node": [27, 55], "oversubscrib": 27, "manner": 27, "id": [27, 34], "launch": 27, "chpl_comm": 27, "gasnet": 27, "chpl_comm_substr": 27, "udp": 27, "gasnet_spawnfn": 27, "l": [27, 28, 31, 32], "smp": 27, "environ": 27, "readm": 27, "multilocal": 27, "uniqu": 27, "identifi": 27, "numlocal": [27, 29], "maxtaskpar": [27, 56], "concurr": [27, 64], "achiev": 27, "estim": 27, "layer": 27, "typic": 27, "processor": [27, 28], "core": 27, "unlik": 27, "numpu": 27, "logic": 27, "process": 27, "unit": 27, "pu": 27, "thing": [27, 62], "instruct": 27, "tell": 27, "mani": 27, "known": 27, "hardwar": 27, "thread": 27, "hyperthread": 27, "account": 27, "o": 27, "best": 27, "By": 27, "ones": 27, "reach": 27, "sever": 27, "resourc": 27, "On": [27, 64], "plain": 27, "linux": 27, "system": 27, "taskset": 27, "command": 27, "chpl_launcher_cores_per_local": 27, "indirectli": 27, "via": 27, "job": 27, "launcher": 27, "aprun": 27, "slurm": 27, "manual": [27, 38], "batch": 27, "runningtask": 27, "intend": [27, 28], "guid": 27, "creation": 27, "greater": [27, 31], "decreas": 27, "walltim": 27, "begun": 27, "yet": 27, "finish": 27, "l1": 27, "l2": 27, "inherit": 27, "interfac": [27, 46, 59, 63], "part": 27, "rest": 27, "npuslogacc": [27, 56], "npuslogal": [27, 56], "npusphysacc": [27, 56], "npusphysal": [27, 56], "chpl_localeid_t": [27, 51, 52, 53, 55], "runningtaskcount": 27, "runningtaskcntset": 27, "runningtaskcntadd": 27, "runningtaskcntsub": 27, "runningtaskcnt": 27, "addchild": 27, "_getchild": 27, "gpu": 27, "gpusimpl": 27, "isgpu": 27, "hierarchi": 27, "fact": 27, "control": 27, "itself": 27, "chpl_getsingletonlocalearrai": 27, "abstractlocalemodel": 27, "chpl_singletonthislocalearrai": 27, "parent_loc": 27, "rootlocal": [27, 56, 57], "replicaterootlocal": 27, "origrootlocal": 27, "abstractrootlocal": 27, "getdefaultlocalespac": 27, "chpl_emptylocalespac": 27, "getdefaultlocalearrai": [27, 57], "chpl_emptylocal": 27, "localeidtolocal": 27, "chpl_initonlocal": 27, "chpl_init_rootlocal": 27, "chpl_rootlocaleinitpriv": 27, "locidx": 27, "chpl_defaultlocaleinitpriv": 27, "chpl_singletoncurrentlocaleinitprivatesubloc": 27, "chpl_singletoncurrentlocaleinitpriv": 27, "chpl_task_getrequestedsubloc": 27, "export": [27, 39, 44, 48, 49, 51, 52, 59], "chpl_getlocaleid": 27, "here_id": 27, "chpl_localeid_to_local": 27, "chpl_taskrunningcntinc": 27, "chpl_taskrunningcntdec": 27, "chpl_taskrunningcntreset": 27, "collect": 28, "mutex": 28, "spinlock": 28, "situat": 28, "minim": 28, "short": 28, "critic": 28, "unlock": 28, "chpl_comm_default_num_local": 29, "chpl_privateobject_t": 30, "chpl_privateobject": 30, "chpl_getprivatizedcopi": 30, "objecttyp": 30, "objectpid": 30, "debugchapelrang": 31, "useoptimizedrangeiter": 31, "newslicerul": 31, "switch": 31, "rule": 31, "alwai": 31, "regardless": [31, 38], "revers": 31, "newrangeliteraltyp": 31, "snewrangeliteraltyp": 31, "produc": 31, "neither": 31, "negon": 31, "_rang": 31, "_low": 31, "chpl__idxtypetointidxtyp": [31, 46], "_high": 31, "_stride": 31, "chpl__rangestridetyp": [31, 65], "_align": 31, "strtype": 31, "renam": 31, "evalu": 31, "doc": 31, "hope": 31, "detail": 31, "face": 31, "featur": 31, "normalizealign": 31, "alignmentvalu": 31, "chpl_build_bounded_rang": [31, 65], "chpl__nudgelowbound": 31, "chpl__nudgehighbound": 31, "chpl_build_low_bounded_rang": [31, 65], "chpl_build_high_bounded_rang": [31, 65], "chpl_build_unbounded_rang": 31, "createwithsingleel": 31, "elm": 31, "chpl_compute_low_param_loop_bound": 31, "chpl_compute_high_param_loop_bound": 31, "chpl_compute_count_param_loop": 31, "chpl_low_bound_count_for_param_loop": 31, "chpl_high_bound_count_for_param_loop": 31, "chpl_bounded_count_for_param_loop_low": 31, "chpl_bounded_count_for_param_loop_high": 31, "hasparamstrid": 31, "hasparamalign": 31, "isalign": 31, "unambigu": 31, "hasparamalignmentfield": 31, "hasparamstridealtvalald": 31, "haslowbound": 31, "infti": 31, "haspositivestrid": 31, "hassign": 31, "isani": 31, "hasnegativestrid": 31, "ison": 31, "isnegon": 31, "isposit": 31, "isneg": 31, "defaultstrid": 31, "chpl_strideproduct": 31, "s2": [31, 63], "r1": 31, "r2": 31, "stride2": 31, "chpl_strideunion": 31, "chpl_strideunionrc": 31, "chpl_assignstrideissaf": 31, "rhsstride": 31, "chpl_assignstrideisunsaf": 31, "chpl_setfield": 31, "alignedlowasint": 31, "chpl_alignedlowasintforit": 31, "hashighbound": 31, "alignedhighasint": 31, "chpl_alignedhighasintforit": 31, "chpl_isnaturallyalign": 31, "ambigu": 31, "isfiniteidxtyp": 31, "unbound": 31, "exce": 31, "max": [31, 32, 43], "infinit": 31, "maxim": 31, "sizeashelp": 31, "al": 31, "ah": 31, "chpl_sizeasforit": 31, "hasfirst": 31, "hasfirstforit": 31, "hasfirstlastareparam": 31, "firstasint": 31, "chpl_firstasintforit": 31, "haslast": 31, "haslastforit": 31, "lastasint": 31, "chpl_lastasintforit": 31, "chpl_idxtypesizechang": 31, "chpl_ident": 31, "chpl_trycastissaf": 31, "chpl_castissaf": 31, "chpl_throwingcast": 31, "totyp": [31, 38], "chpl_idxcastissaf": 31, "chpl_checkstrid": 31, "chpl_idxcastthrow": 31, "chpl_boundscheck": 31, "alignlow": 31, "alignhigh": 31, "ordin": 31, "member": 31, "show": 31, "ord": 31, "7": 31, "chpl__singlevalidxtyp": 31, "h": 31, "operand": 31, "rather": 31, "chpl_check_step_integr": 31, "step": 31, "chpl_need_to_check_step": 31, "chpl_range_check_strid": 31, "chpl_by_help": 31, "newstrid": 31, "algn": 31, "plu": 31, "chpl_count_help": 31, "chpl_checkifrangeiterwilloverflow": 31, "shouldhalt": 31, "checkifiterwilloverflow": 31, "chpl_direct_range_it": 31, "chpl_direct_strided_range_it": 31, "w2": 31, "chpl_direct_counted_range_it": 31, "chpl_direct_counted_range_iter_help": 31, "chpl_direct_pos_stride_range_it": 31, "chpl_direct_param_stride_range_it": 31, "haslowboundforit": 31, "hashighboundforit": 31, "generaliter": 31, "localemodelpartitionsiterationonsublocal": [31, 51, 52, 53], "chpl__mod": 31, "dividend": 31, "modulu": 31, "numbit": 31, "isint": 31, "chpl__diffmod": 31, "minuend": 31, "subtrahend": 31, "chpl__add": 31, "chpl__addrangestrid": 31, "chpl__extendedeuclidhelp": 31, "u": 31, "chpl__extendedeuclid": 31, "chpl_inttoidx": [31, 46], "chpl__inttoidx": [31, 46, 65], "isbooltyp": 31, "chpl__idxtoint": [31, 65], "chpl__scanstaterestypesmatch": [32, 46], "chpl__scaniteratorzip": 32, "scan": [32, 46], "question": 32, "issu": 32, "20204": 32, "chpl__scaniter": 32, "chpl__accumgen": 32, "chpl__reducecombin": 32, "globalop": 32, "localop": 32, "chpl__cleanuplocalop": 32, "chpl_sumtypeissam": 32, "chpl__sumtyp": 32, "reducescanop": 32, "sumreducescanop": 32, "accumul": 32, "accumulateontost": 32, "state": [32, 38, 46], "combin": 32, "productreducescanop": 32, "_prod_id": 32, "maxreducescanop": 32, "minreducescanop": 32, "minmax": 32, "logicalandreducescanop": 32, "_land_id": 32, "logicalorreducescanop": 32, "_lor_id": 32, "bitwiseandreducescanop": 32, "_band_id": 32, "bitwiseorreducescanop": 32, "_bor_id": 32, "bitwisexorreducescanop": 32, "_bxor_id": 32, "_maxloc_id": 32, "_minloc_id": 32, "maxloc": 32, "minloc": 32, "_remotevarcontain": 33, "containedvalu": 33, "_remotevarwrapp": 33, "tmp": 33, "__defaultvaluefortyp": 33, "intyp": 33, "chpl__buildremotewrapp": 33, "tr": 33, "chpl__enableserializedglob": 34, "chpl_get_global_serialize_t": 34, "chpl__broadcastglob": 34, "localezeroglob": 34, "chpl__destroybroadcastedglob": 34, "debugshortarraytransf": 35, "disableshortarraytransf": 35, "shortarraytransferthreshold": 35, "60": 35, "chpl__staticcheckshortarraytransf": 35, "chpl__dynamiccheckshortarraytransf": 35, "sharingkind": 37, "computeorretriev": 37, "computeperlocal": 37, "whichev": 37, "static": 37, "_staticwrappercontain": 37, "_staticwrapp": 37, "valuetyp": 37, "setvalu": 37, "getvalu": 37, "callershouldcomputevalu": 37, "reset": [37, 38], "chpl__functionstaticvariablewrappertyp": 37, "chpl__executestaticwrappercleanupeverywher": 37, "fn": [37, 51, 52, 53, 55], "usenativesyncvar": 38, "chpl__readxx": 38, "wrap": 38, "getsyncclasstyp": 38, "readf": 38, "block": [38, 46], "readff": 38, "readxx": 38, "unchang": 38, "writeff": 38, "writexf": 38, "alter": 38, "chpl__compilergeneratedassignsyncsingl": 38, "chpl__compilergeneratedcopysyncsingl": 38, "sv": 38, "chpl__maybeautodestroi": 38, "_synccl": 38, "syncaux": 38, "chpl_sync_aux_t": 38, "_qthreads_synccl": 38, "alignedvalu": 38, "aligned_t": 38, "_singlecl": 38, "singleaux": 38, "chpl_single_aux_t": 38, "chpl_task_data_setdynamicendcount": 39, "tl": 39, "chpl_task_data_getdynamicendcount": 39, "chpl_task_data_setseri": 39, "makeseri": 39, "chpl_task_data_getseri": 39, "chpl_task_data_setnextcostmtseri": 39, "chpl_task_data_getnextcostmtseri": 39, "chpl_task_data_setcommdiagstemporarilydis": 39, "chpl_task_data_getcommdiagstemporarilydis": 39, "chpl_task_setdynamicendcount": 39, "chpl_task_getdynamicendcount": 39, "chpl_task_setseri": 39, "chpl_task_getseri": 39, "chpl_task_setcommdiagstemporarilydis": 39, "chpl_task_getcommdiagstemporarilydis": 39, "chpl_task_getinfochapel": 40, "chpl_task_getinfochapelinbundl": 40, "chpl_task_bundle_p": [40, 55], "chpl_task_data_setup": 40, "infochapel": 40, "chpl_save_task_error": 40, "chpl_save_task_error_own": 40, "chpl_task_getenvnumthreadsperlocal": 42, "numthreadsperlocal": 42, "chpl__init_tupl": 43, "_build_tupl": 43, "_build_tuple_noref": 43, "_build_tuple_always_allow_ref": 43, "p": [43, 62, 64], "_build_star_tuple_noref": 43, "chpl__tuplifi": 43, "_check_tuple_var_decl": 43, "chpl_warn_tuple_iter": 43, "chpl__tuplerest": 43, "compon": 43, "chpl_twohomogtupl": 43, "safeadd": 44, "safesub": 44, "safemul": 44, "_command_line_cast": 44, "chpl_main_argu": 44, "argc": 44, "return_valu": 44, "chpl_convert_arg": 44, "chpl_get_mli_connect": 44, "chpl_rt_preusercodehook": 44, "chpl_rt_postusercodehook": 44, "allocate_string_literals_buf": 44, "deallocate_string_literals_buf": 44, "printmoduledeinitord": 44, "chpl_addmodul": 44, "chpl_deinitmodul": 44, "debugdefaultassoc": 45, "debugassocdatapar": 45, "defaultassociativesupportsautolocalaccess": 45, "defaultassociativedomrehashhelp": 45, "defaultassociativedom": 45, "defaultdist": [45, 46, 47], "numentri": 45, "tablelock": 45, "locktabl": 45, "unlockt": 45, "_usingseri": 45, "_isdefaultdes": 45, "dsiindsitersafeforremov": [45, 47], "_isslotful": 45, "dsimemb": [45, 46, 47], "_add": 45, "dsirequestcapac": 45, "dsisort": 45, "_fullslot": 45, "defaultassociativearr": 45, "parsafedom": 45, "datas": 45, "tmpdata": 45, "eltsneeddeinit": 45, "dsiserialreadwrit": [45, 46], "printbrac": 45, "inout": 45, "readchapelstyleassocarrai": 45, "_dodefaultinitslot": 45, "inadd": 45, "_elementneedsdeinit": 45, "elt": [45, 49], "chpl_serialreadwriteassociativehelp": 45, "datapartasksperlocal": 46, "dataparignorerunningtask": 46, "dataparmingranular": 46, "debugdefaultdist": 46, "debugdefaultdistbulktransf": 46, "debugdatapar": 46, "debugdataparnuma": 46, "disablearrrealloc": 46, "reportinplacerealloc": 46, "parallelassignthreshold": 46, "1024": 46, "enableparallelgetsinassign": 46, "enableparallelputsinassign": 46, "defaultdoradopt": 46, "defaultdisablelazyradopt": 46, "earlyshiftdata": 46, "usepollyarrayindex": 46, "defaultrectangularsupportsautolocalaccess": 46, "arraystorageord": 46, "rmo": 46, "cmo": 46, "defaultstorageord": 46, "storageord": 46, "polly_array_index": 46, "dsiindextolocal": 46, "dsiassign": 46, "chpl_defaultdistinitpriv": 46, "_serialized_domain": 46, "dsigetindic": 46, "these_help": 46, "rd": 46, "tasksperlocal": 46, "ignorerun": 46, "minindicespertask": 46, "createtupl": 46, "dsibuildarraywith": 46, "dsilocalslic": 46, "_remoteaccessdata": 46, "blkchang": 46, "blk": 46, "str": [46, 65], "chpl__signedtyp": 46, "factoredoff": 46, "shifteddata": 46, "thedata": 46, "getdataelem": 46, "dataelem": 46, "shifteddataelem": 46, "getdataindex": 46, "computefactoredoff": 46, "initshifteddata": 46, "stridealignup": 46, "stridealigndown": 46, "initdatafrom": 46, "toslic": 46, "newdom": 46, "toreindex": 46, "torankchang": 46, "cd": 46, "locradcach": 46, "targetlocdom": 46, "rad": 46, "radlock": 46, "newtargetlocdom": 46, "lockrad": 46, "rlocidx": 46, "unlockrad": 46, "defaultrectangulararr": 46, "idxsignedtyp": 46, "sizesperdim": 46, "externfreefunc": 46, "externarr": 46, "_borrow": 46, "setupfieldsandalloc": 46, "getshift": 46, "adjustblkoffstrfornewdomain": 46, "alia": 46, "dsigetrad": 46, "chpl__serialviewiter1d": 46, "viewrang": 46, "chpl__serialviewit": 46, "viewdom": 46, "chpl__serialviewiterhelp": 46, "_supportsseri": 46, "isdefaultserializertyp": 46, "serializertyp": 46, "deserializertyp": 46, "defaultdeseri": 46, "doitostr": 46, "chpl_serialreadwriterectangular": 46, "_supportsbulkel": 46, "chpl_serialreadwriterectangularhelp": 46, "isdatacontigu": 46, "debugdrscan": 46, "doioptimizedswap": 46, "chpl__prescan": 46, "restyp": 46, "chpl__postscan": 46, "rng": 46, "debugdefaultspars": 47, "defaultsparsesupportsautolocalaccess": 47, "_nnz": 47, "_indic": 47, "add_help": 47, "rem_help": 47, "defaultsparsearr": 47, "printbracket": 47, "chpl_librarymodulelevelsetup": 48, "chpl_librarymodulelevelcleanup": 48, "chpl_byte_buff": 48, "chpl_byte_buffer_fre": 48, "cb": 48, "chpl__exporttypechplbytebuff": 48, "chpl__exportretstringorbyt": 48, "chpl__exportret": 48, "rt": 48, "chpl__exportarg": 48, "chpl_opaque_arrai": 49, "chpl_external_arrai": 49, "num_elt": 49, "freer": 49, "chpl_make_external_arrai": 49, "elt_siz": 49, "chpl_make_external_array_ptr": 49, "chpl_make_external_array_ptr_fre": 49, "chpl_free_external_arrai": 49, "chpl_call_free_func": 49, "makearrayfromptr": 49, "makearrayfromexternarrai": 49, "makearrayfromopaqu": 49, "convertstringorbyt": 49, "converttoexternalarrai": 49, "getexternalarraytyp": 49, "cleanupopaquearrai": 49, "cfi_attribute_point": 50, "cfi_attribute_allocat": 50, "cfi_attribute_oth": 50, "cfi__max_attribut": 50, "cfi_type_int8_t": 50, "cfi_type_int16_t": 50, "cfi_type_int32_t": 50, "cfi_type_int64_t": 50, "cfi_type_signed_char": 50, "cfi_type_short": 50, "cfi_type_int": 50, "cfi_type_long": 50, "cfi_type_long_long": 50, "cfi_type_size_t": 50, "cfi_type_int_least8_t": 50, "cfi_type_int_least16_t": 50, "cfi_type_int_least32_t": 50, "cfi_type_int_least64_t": 50, "cfi_type_int_fast8_t": 50, "cfi_type_int_fast16_t": 50, "cfi_type_int_fast32_t": 50, "cfi_type_int_fast64_t": 50, "cfi_type_intmax_t": 50, "cfi_type_intptr_t": 50, "cfi_type_ptrdiff_t": 50, "cfi_type_float": 50, "cfi_type_doubl": 50, "cfi_type_long_doubl": 50, "cfi_type_double_complex": 50, "cfi_type_long_double_complex": 50, "cfi_type_bool": 50, "cfi_type_char": 50, "cfi_type_cptr": 50, "cfi_type_struct": 50, "cfi_type_oth": 50, "cfi__max_typ": 50, "cfi_success": 50, "cfi_error_base_addr_nul": 50, "cfi_error_base_addr_not_nul": 50, "cfi_invalid_elem_len": 50, "cfi_invalid_rank": 50, "cfi_invalid_typ": 50, "cfi_invalid_attribut": 50, "cfi_invalid_ext": 50, "cfi_invalid_descriptor": 50, "cfi_error_mem_alloc": 50, "cfi_error_out_of_bound": 50, "cfi_max_rank": 50, "cfi_vers": 50, "cfi__version_0001": 50, "cfi_address": 50, "dv": 50, "cfi_cdesc_t": 50, "subscript": 50, "cfi_index_t": 50, "for_cfi_address": 50, "cfi_alloc": 50, "lower_bound": 50, "upper_bound": 50, "elem_len": 50, "for_cfi_alloc": 50, "cfi_dealloc": 50, "for_cfi_dealloc": 50, "cfi_establish": 50, "base_addr": 50, "attribut": 50, "cfi_attribute_t": 50, "type_arg": 50, "cfi_type_t": 50, "cfi_rank_t": 50, "extent": 50, "for_cfi_establish": 50, "cfi_is_contigu": 50, "for_cfi_is_contigu": 50, "cfi_sect": 50, "for_cfi_sect": 50, "cfi_select_part": 50, "displac": 50, "for_cfi_select_part": 50, "cfi_setpoint": 50, "for_cfi_setpoint": 50, "c_ptrdiff": 50, "cfi_dim_t": 50, "extern": 50, "sm": 50, "makearrayfromfortranarrai": 50, "fa": 50, "2017": 51, "advanc": 51, "micro": 51, "devic": 51, "debugapulocal": 51, "chpl_getsubloc": [51, 53], "chpl_task_setsubloc": [51, 53], "chpl_dodirectexecuteon": [51, 52, 53], "chpl_executeon": [51, 52, 53], "chpl_comm_on_bundle_p": [51, 52, 53, 55], "args_siz": [51, 52, 53, 55], "chpl_executeonfast": [51, 52, 53], "chpl_executeonnb": [51, 52, 53], "debuggpulocal": 53, "chpl_here_alloc": 54, "md": 54, "chpl_here_aligned_alloc": 54, "chpl_here_calloc": 54, "chpl_here_realloc": 54, "ptr": 54, "chpl_here_good_alloc_s": 54, "min_siz": 54, "chpl_here_fre": 54, "chpl_comm_on_bundle_t": 55, "chpl_task_bundle_t": 55, "chpl_comm_on_bundle_task_bundl": 55, "bundl": 55, "chpl_rt_buildlocaleid": 55, "chpl_rt_nodefromlocaleid": 55, "chpl_rt_sublocfromlocaleid": 55, "chpl_buildlocaleid": 55, "chpl_nodefromlocaleid": 55, "chpl_sublocfromlocaleid": 55, "chpl_comm_execute_on": 55, "loc_id": 55, "subloc_id": 55, "arg_siz": 55, "chpl_comm_execute_on_fast": 55, "chpl_comm_execute_on_nb": 55, "chpl_comm_taskcallft": 55, "chpl_ftable_cal": 55, "chpl_task_addtask": 55, "chpl_task_yield": 55, "chpl_taskaddbegin": 55, "chpl_taskaddcostmt": 55, "debuglocalemodel": 56, "chpl_root_locale_accum": 56, "accum": 56, "setrootlocalevalu": 56, "helpsetuprootlocaleflat": 56, "helpsetuprootlocalenuma": 56, "helpsetuprootlocaleapu": 56, "helpsetuprootlocalegpu": 56, "helpsetuplocaleflat": 56, "localemodel": 56, "local_nam": 56, "helpsetuplocalenuma": 56, "numsublocal": 56, "numadomain": 56, "helpsetuplocaleapu": 56, "cpulocal": 56, "gpulocal": 56, "helpsetuplocalegpu": 56, "localespac": 57, "_defaultof": 58, "memory_order_relax": 58, "memory_order_consum": 58, "memory_order_acquir": 58, "memory_order_releas": 58, "memory_order_acq_rel": 58, "readableord": 58, "c_memory_ord": 58, "chpl_rmem_consist_releas": 58, "chpl_rmem_consist_acquir": 58, "chpl_rmem_consist_maybe_releas": 58, "chpl_rmem_consist_maybe_acquir": 58, "chpl_rmem_consist_f": 58, "memstat": 59, "memleaksbytyp": 59, "memleak": 59, "memmax": 59, "memthreshold": 59, "memlog": 59, "memleakslog": 59, "memleaksbydesc": 59, "track": 59, "entri": 59, "leak": 59, "free": [59, 65], "dump": 59, "cmemmax": 59, "safecast": 59, "cmemthreshold": 59, "chpl_memtracking_returnconfigv": 59, "ret_memtrack": 59, "ret_memstat": 59, "ret_memleaksbytyp": 59, "ret_memleaksbydesc": 59, "ret_memleak": 59, "ret_memmax": 59, "ret_memthreshold": 59, "ret_memlog": 59, "ret_memleakslog": 59, "ratomicbool": 61, "ratomict": 61, "_own": 62, "respons": [62, 64, 65], "lifetim": [62, 64], "chpl_t": [62, 64], "chpl_p": [62, 64], "isclass": [62, 64], "adopt": [62, 64], "strategi": [62, 64], "previous": 62, "destroi": [62, 64], "reason": [62, 64], "caught": [62, 64], "isnonnilableclass": [62, 64], "isnilableclass": [62, 64], "transfer": 62, "_readwritehelp": [62, 64], "moduleinitlevel": 63, "printmoduleinit": 63, "initprint": 63, "referencecount": 64, "strongcount": 64, "totalcount": 64, "retain": 64, "releasestrong": 64, "releasetot": 64, "tryretainweak": 64, "increment": 64, "strong": 64, "whatev": 64, "total": 64, "upgrad": 64, "someon": 64, "conflict": 64, "releaseweak": 64, "incrementweak": 64, "_share": 64, "owner": 64, "chpl_pn": 64, "_privat": 64, "coercion": 64, "sens": 64, "intent": 64, "pn": 64, "pointer": 64, "doclear": 64, "recogn": 64, "expir": 64, "longer": 64, "downgrad": 64, "experiment": 64, "usecachednumcodepoint": 65, "_bindex": 65, "codepointindex": 65, "_cpindex": 65, "cpi": 65, "chpl__rangeunsignedtyp": 65, "chpl_createstringwithliter": 65, "event": 65, "caller": 65, "_string": 65, "hasescap": 65, "isascii": 65, "_cpindexlenhelpnoadjust": 65, "_cpindexlen": 65, "unicod": 65, "skip": 65, "prior": 65, "accident": 65, "middl": 65, "correctli": 65, "_indexlen": 65, "dosplitwsutf8help": 65, "dosplitwsutf8": 65, "dosearchutf8": 65, "my_str": 65, "different_local": 65, "back": 65, "abcd": 65, "synonym": 65, "tocodepoint": 65, "codepointspliterror": 65, "vararg": 65, "toward": 65, "row": 65, "mystr": 65, "appendcodepointvalu": 65, "0x10ffff": 65, "0xfffd": 65, "wint_t": 65, "codepointtostr": 65, "chpl_createstringwithnewbuffernv": 66, "chpl_createstringwithborrowedbuffernv": 66, "chpl_createstringwithownedbuffernv": 66, "isprimitivetyp": 67, "ishomogeneoustupletyp": 67}, "objects": {"ArrayViewRankChange": [[1, 0, 1, "", "ArrayViewRankChangeArr"], [1, 0, 1, "", "ArrayViewRankChangeDist"], [1, 0, 1, "", "ArrayViewRankChangeDom"], [1, 4, 1, "", "chpl_rankChangeConvertDom"], [1, 4, 1, "", "chpl_rankChangeConvertDownToUp"], [1, 4, 1, "", "chpl_rankChangeConvertIdx"], [1, 4, 1, "", "chpl_rankChangeConvertIdxHiDToLoD"]], "ArrayViewRankChange.ArrayViewRankChangeArr": [[1, 1, 1, "", "_ArrInstance"], [1, 1, 1, "", "_ArrPid"], [1, 1, 1, "", "_DomPid"], [1, 2, 1, "", "_containsRCRE"], [1, 2, 1, "", "_getActualArray"], [1, 2, 1, "", "_getRCREView"], [1, 2, 1, "", "arr"], [1, 2, 1, "", "buildIndexCache"], [1, 1, 1, "", "collapsedDim"], [1, 2, 1, "", "doiBulkTransferFromKnown"], [1, 2, 1, "", "doiBulkTransferToKnown"], [1, 2, 1, "", "doiCanBulkTransferRankChange"], [1, 1, 1, "", "dom"], [1, 2, 1, "", "dsiAccess"], [1, 2, 1, "", "dsiBoundsCheck"], [1, 2, 1, "", "dsiDestroyArr"], [1, 2, 1, "", "dsiDisplayRepresentation"], [1, 2, 1, "", "dsiElementInitializationComplete"], [1, 2, 1, "", "dsiGetBaseDom"], [1, 2, 1, "", "dsiGetPrivatizeData"], [1, 2, 1, "", "dsiHasSingleLocalSubdomain"], [1, 2, 1, "", "dsiLocalAccess"], [1, 2, 1, "", "dsiLocalSubdomain"], [1, 2, 1, "", "dsiPrivatize"], [1, 2, 1, "", "dsiSerialRead"], [1, 2, 1, "", "dsiSerialWrite"], [1, 2, 1, "", "dsiSupportsPrivatization"], [1, 1, 1, "", "idx"], [1, 2, 1, "", "idxType"], [1, 1, 1, "", "indexCache"], [1, 2, 1, "", "init"], [1, 2, 1, "", "isRankChangeArrayView"], [1, 1, 1, "", "ownsArrInstance"], [1, 2, 1, "", "privDom"], [1, 2, 1, "", "rank"], [1, 2, 1, "", "shouldUseIndexCache"], [1, 3, 1, "", "these"]], "ArrayViewRankChange.ArrayViewRankChangeDist": [[1, 1, 1, "", "collapsedDim"], [1, 2, 1, "", "downDist"], [1, 1, 1, "", "downDistInst"], [1, 1, 1, "", "downDistPid"], [1, 2, 1, "", "dsiClone"], [1, 2, 1, "", "dsiDestroyDist"], [1, 2, 1, "", "dsiEqualDMaps"], [1, 2, 1, "", "dsiGetPrivatizeData"], [1, 2, 1, "", "dsiIsLayout"], [1, 2, 1, "", "dsiNewRectangularDom"], [1, 2, 1, "", "dsiPrivatize"], [1, 2, 1, "", "dsiSupportsPrivatization"], [1, 1, 1, "", "idx"]], "ArrayViewRankChange.ArrayViewRankChangeDom": [[1, 2, 1, "", "_getActualDomain"], [1, 2, 1, "", "chpl_rankChangeConvertHiDTupleToLoD"], [1, 2, 1, "", "chpl_rankChangeConvertLoDTupleToHiD"], [1, 1, 1, "", "collapsedDim"], [1, 2, 1, "", "dist"], [1, 1, 1, "", "distInst"], [1, 1, 1, "", "distPid"], [1, 2, 1, "", "downDom"], [1, 1, 1, "", "downDomInst"], [1, 1, 1, "", "downDomPid"], [1, 2, 1, "", "downIdxToUpIdx"], [1, 2, 1, "", "downrank"], [1, 2, 1, "", "dsiAlignedHigh"], [1, 2, 1, "", "dsiAlignedLow"], [1, 2, 1, "", "dsiAlignment"], [1, 2, 1, "", "dsiAssignDomain"], [1, 2, 1, "", "dsiBuildArray"], [1, 2, 1, "", "dsiCreateIndexBuffer"], [1, 2, 1, "", "dsiDestroyDom"], [1, 2, 1, "", "dsiFirst"], [1, 2, 1, "", "dsiGetPrivatizeData"], [1, 2, 1, "", "dsiGetReprivatizeData"], [1, 2, 1, "", "dsiHasSingleLocalSubdomain"], [1, 2, 1, "", "dsiHigh"], [1, 2, 1, "", "dsiIndexOrder"], [1, 2, 1, "", "dsiLast"], [1, 2, 1, "", "dsiLocalSubdomain"], [1, 2, 1, "", "dsiLow"], [1, 2, 1, "", "dsiMyDist"], [1, 2, 1, "", "dsiPrivatize"], [1, 2, 1, "", "dsiReprivatize"], [1, 2, 1, "", "dsiSerialWrite"], [1, 2, 1, "", "dsiSetIndices"], [1, 2, 1, "", "dsiStride"], [1, 2, 1, "", "dsiSupportsAutoLocalAccess"], [1, 2, 1, "", "dsiSupportsPrivatization"], [1, 2, 1, "", "dsiTargetLocales"], [1, 1, 1, "", "idx"], [1, 2, 1, "", "isRankChangeDomainView"], [1, 2, 1, "", "parSafe"], [1, 3, 1, "", "these"], [1, 2, 1, "", "upDom"], [1, 1, 1, "", "upDomInst"]], "ArrayViewReindex": [[2, 0, 1, "", "ArrayViewReindexArr"], [2, 0, 1, "", "ArrayViewReindexDist"], [2, 0, 1, "", "ArrayViewReindexDom"], [2, 4, 1, "", "chpl_reindexConvertDom"], [2, 4, 1, "", "chpl_reindexConvertDomMaybeSlice"], [2, 4, 1, "", "chpl_reindexConvertIdx"], [2, 4, 1, "", "chpl_reindexConvertIdxDim"]], "ArrayViewReindex.ArrayViewReindexArr": [[2, 1, 1, "", "_ArrInstance"], [2, 1, 1, "", "_ArrPid"], [2, 1, 1, "", "_DomPid"], [2, 2, 1, "", "_containsRCRE"], [2, 2, 1, "", "_getActualArray"], [2, 2, 1, "", "_getRCREView"], [2, 2, 1, "", "arr"], [2, 2, 1, "", "buildIndexCache"], [2, 2, 1, "", "doiBulkTransferFromKnown"], [2, 2, 1, "", "doiBulkTransferToKnown"], [2, 2, 1, "", "doiCanBulkTransferRankChange"], [2, 1, 1, "", "dom"], [2, 2, 1, "", "downdom"], [2, 2, 1, "", "dsiAccess"], [2, 2, 1, "", "dsiBoundsCheck"], [2, 2, 1, "", "dsiDestroyArr"], [2, 2, 1, "", "dsiDisplayRepresentation"], [2, 2, 1, "", "dsiElementInitializationComplete"], [2, 2, 1, "", "dsiGetBaseDom"], [2, 2, 1, "", "dsiGetPrivatizeData"], [2, 2, 1, "", "dsiHasSingleLocalSubdomain"], [2, 2, 1, "", "dsiLocalAccess"], [2, 2, 1, "", "dsiLocalSubdomain"], [2, 2, 1, "", "dsiPrivatize"], [2, 2, 1, "", "dsiSerialRead"], [2, 2, 1, "", "dsiSerialWrite"], [2, 2, 1, "", "dsiSupportsPrivatization"], [2, 2, 1, "", "idxType"], [2, 1, 1, "", "indexCache"], [2, 2, 1, "", "init"], [2, 2, 1, "", "isReindexArrayView"], [2, 1, 1, "", "ownsArrInstance"], [2, 2, 1, "", "privDom"], [2, 2, 1, "", "rank"], [2, 2, 1, "", "shouldUseIndexCache"], [2, 3, 1, "", "these"]], "ArrayViewReindex.ArrayViewReindexDist": [[2, 2, 1, "", "downDist"], [2, 1, 1, "", "downDistInst"], [2, 1, 1, "", "downDistPid"], [2, 1, 1, "", "downdomInst"], [2, 1, 1, "", "downdomPid"], [2, 2, 1, "", "dsiClone"], [2, 2, 1, "", "dsiDestroyDist"], [2, 2, 1, "", "dsiGetPrivatizeData"], [2, 2, 1, "", "dsiIsLayout"], [2, 2, 1, "", "dsiNewRectangularDom"], [2, 2, 1, "", "dsiPrivatize"], [2, 2, 1, "", "dsiSupportsPrivatization"], [2, 1, 1, "", "updom"]], "ArrayViewReindex.ArrayViewReindexDom": [[2, 2, 1, "", "_getActualDomain"], [2, 2, 1, "", "chpl_reindexConvertHiDTupleToLoD"], [2, 2, 1, "", "chpl_reindexConvertLoDTupleToHiD"], [2, 2, 1, "", "dist"], [2, 1, 1, "", "distInst"], [2, 1, 1, "", "distPid"], [2, 2, 1, "", "downIdxToUpIdx"], [2, 2, 1, "", "downdom"], [2, 1, 1, "", "downdomInst"], [2, 1, 1, "", "downdomPid"], [2, 2, 1, "", "downdomtype"], [2, 2, 1, "", "dsiAlignedHigh"], [2, 2, 1, "", "dsiAlignedLow"], [2, 2, 1, "", "dsiAlignment"], [2, 2, 1, "", "dsiAssignDomain"], [2, 2, 1, "", "dsiBuildArray"], [2, 2, 1, "", "dsiCreateIndexBuffer"], [2, 2, 1, "", "dsiDestroyDom"], [2, 2, 1, "", "dsiFirst"], [2, 2, 1, "", "dsiGetPrivatizeData"], [2, 2, 1, "", "dsiGetReprivatizeData"], [2, 2, 1, "", "dsiHasSingleLocalSubdomain"], [2, 2, 1, "", "dsiHigh"], [2, 2, 1, "", "dsiIndexOrder"], [2, 2, 1, "", "dsiLast"], [2, 2, 1, "", "dsiLocalSubdomain"], [2, 2, 1, "", "dsiLow"], [2, 2, 1, "", "dsiMyDist"], [2, 2, 1, "", "dsiPrivatize"], [2, 2, 1, "", "dsiReprivatize"], [2, 2, 1, "", "dsiSetIndices"], [2, 2, 1, "", "dsiStride"], [2, 2, 1, "", "dsiSupportsPrivatization"], [2, 2, 1, "", "dsiTargetLocales"], [2, 2, 1, "", "isReindexDomainView"], [2, 1, 1, "", "ownsDownDomInst"], [2, 2, 1, "", "parSafe"], [2, 3, 1, "", "these"], [2, 2, 1, "", "updom"], [2, 1, 1, "", "updomInst"]], "ArrayViewSlice": [[3, 0, 1, "", "ArrayViewSliceArr"], [3, 5, 1, "", "chpl_debugSerializeSlice"], [3, 5, 1, "", "chpl_serializeSlices"]], "ArrayViewSlice.ArrayViewSliceArr": [[3, 1, 1, "", "_ArrInstance"], [3, 1, 1, "", "_ArrPid"], [3, 1, 1, "", "_DomPid"], [3, 2, 1, "", "_containsRCRE"], [3, 2, 1, "", "_getActualArray"], [3, 2, 1, "", "_getRCREView"], [3, 2, 1, "", "arr"], [3, 2, 1, "", "buildIndexCache"], [3, 2, 1, "", "chpl__deserialize"], [3, 2, 1, "", "chpl__rvfMe"], [3, 2, 1, "", "chpl__serialize"], [3, 2, 1, "", "doiBulkTransferFromKnown"], [3, 2, 1, "", "doiBulkTransferToKnown"], [3, 2, 1, "", "doiCanBulkTransferRankChange"], [3, 1, 1, "", "dom"], [3, 2, 1, "", "dsiAccess"], [3, 2, 1, "", "dsiBoundsCheck"], [3, 2, 1, "", "dsiDestroyArr"], [3, 2, 1, "", "dsiDisplayRepresentation"], [3, 2, 1, "", "dsiElementInitializationComplete"], [3, 2, 1, "", "dsiGetBaseDom"], [3, 2, 1, "", "dsiGetPrivatizeData"], [3, 2, 1, "", "dsiHasSingleLocalSubdomain"], [3, 2, 1, "", "dsiLocalSubdomain"], [3, 3, 1, "", "dsiLocalSubdomains"], [3, 2, 1, "", "dsiPrivatize"], [3, 2, 1, "", "dsiSerialRead"], [3, 2, 1, "", "dsiSerialWrite"], [3, 2, 1, "", "dsiSupportsPrivatization"], [3, 2, 1, "", "idxType"], [3, 1, 1, "", "indexCache"], [3, 2, 1, "", "init"], [3, 2, 1, "", "isSliceArrayView"], [3, 2, 1, "", "privDom"], [3, 2, 1, "", "rank"], [3, 2, 1, "", "shouldUseIndexCache"], [3, 3, 1, "", "these"]], "Atomics": [[4, 4, 1, "", ":"], [4, 6, 1, "", "AtomicBool"], [4, 6, 1, "", "AtomicT"], [4, 4, 1, "", "atomicFence"], [4, 4, 1, "", "atomic_fence"], [4, 4, 1, "", "chpl__atomicType"], [4, 4, 1, "", "chpl__processorAtomicType"], [4, 4, 1, "", "chpl_atomic_thread_fence"], [4, 4, 1, "", "chpl_comm_ensure_progress"]], "Atomics.AtomicBool": [[4, 2, 1, "", "="], [4, 1, 1, "", "_v"], [4, 2, 1, "", "clear"], [4, 2, 1, "", "compareAndSwap"], [4, 2, 1, "", "compareExchange"], [4, 2, 1, "", "compareExchangeWeak"], [4, 2, 1, "", "deinit"], [4, 2, 1, "", "exchange"], [4, 2, 1, "", "init"], [4, 2, 1, "", "init="], [4, 2, 1, "", "init_helper"], [4, 2, 1, "", "testAndSet"], [4, 2, 1, "", "valType"], [4, 2, 1, "", "write"]], "Atomics.AtomicT": [[4, 2, 1, "", "%"], [4, 2, 1, "", "*"], [4, 2, 1, "", "+"], [4, 2, 1, "", "-"], [4, 2, 1, "", "/"], [4, 2, 1, "", "="], [4, 1, 1, "", "_v"], [4, 2, 1, "", "add"], [4, 2, 1, "", "and"], [4, 2, 1, "", "compareAndSwap"], [4, 2, 1, "", "compareExchange"], [4, 2, 1, "", "compareExchangeWeak"], [4, 2, 1, "", "deinit"], [4, 2, 1, "", "exchange"], [4, 2, 1, "", "fetchAdd"], [4, 2, 1, "", "fetchAnd"], [4, 2, 1, "", "fetchOr"], [4, 2, 1, "", "fetchSub"], [4, 2, 1, "", "fetchXor"], [4, 2, 1, "", "init"], [4, 2, 1, "", "init="], [4, 2, 1, "", "init_helper"], [4, 2, 1, "", "or"], [4, 2, 1, "", "sub"], [4, 1, 1, "", "valType"], [4, 2, 1, "", "write"], [4, 2, 1, "", "xor"]], "AtomicsCommon": [[5, 6, 1, "", "atomic_refcnt"]], "AtomicsCommon.atomic_refcnt": [[5, 1, 1, "", "_cnt"], [5, 2, 1, "", "dec"], [5, 2, 1, "", "inc"], [5, 2, 1, "", "init"], [5, 2, 1, "", "init="], [5, 2, 1, "", "read"]], "ByteBufferHelpers": [[6, 4, 1, "", "_strcmp"], [6, 4, 1, "", "bufferAlloc"], [6, 4, 1, "", "bufferCopy"], [6, 4, 1, "", "bufferCopyLocal"], [6, 4, 1, "", "bufferCopyRemote"], [6, 4, 1, "", "bufferEnsureSize"], [6, 4, 1, "", "bufferEquals"], [6, 4, 1, "", "bufferEqualsLocal"], [6, 4, 1, "", "bufferFree"], [6, 4, 1, "", "bufferGetByte"], [6, 4, 1, "", "bufferMemcpy"], [6, 4, 1, "", "bufferMemcpyLocal"], [6, 4, 1, "", "bufferMemmoveLocal"], [6, 4, 1, "", "bufferRealloc"], [6, 7, 1, "", "bufferType"], [6, 7, 1, "", "byteType"], [6, 5, 1, "", "chpl_stringGrowthFactor"], [6, 4, 1, "", "chpl_string_comm_get"], [6, 7, 1, "", "locIdType"]], "Bytes": [[7, 4, 1, "", "*"], [7, 4, 1, "", ":"], [7, 6, 1, "", "_bytes"], [7, 7, 1, "", "bytes"], [7, 4, 1, "", "chpl_createBytesWithLiteral"]], "Bytes._bytes": [[7, 1, 1, "", "buff"], [7, 1, 1, "", "buffLen"], [7, 1, 1, "", "buffSize"], [7, 2, 1, "", "byte"], [7, 2, 1, "", "byteIndices"], [7, 2, 1, "", "chpl__deserialize"], [7, 2, 1, "", "chpl__serialize"], [7, 2, 1, "", "deinit"], [7, 2, 1, "", "deserialize"], [7, 2, 1, "", "init"], [7, 2, 1, "", "init="], [7, 1, 1, "", "isOwned"], [7, 2, 1, "", "item"], [7, 2, 1, "", "join"], [7, 1, 1, "", "locale_id"], [7, 2, 1, "", "numBytes"], [7, 2, 1, "", "serialize"], [7, 2, 1, "", "size"], [7, 2, 1, "", "this"], [7, 2, 1, "", "toByte"]], "Bytes.bytes": [[7, 2, 1, "", "!="], [7, 2, 1, "", "+"], [7, 2, 1, "", "+="], [7, 2, 1, "Bytes.bytes.<", "<"], [7, 2, 1, "Bytes.bytes.<=", "<="], [7, 2, 1, "Bytes.bytes.<=>", "<=>"], [7, 2, 1, "", "="], [7, 2, 1, "", "=="], [7, 2, 1, "Bytes.bytes.>", ">"], [7, 2, 1, "Bytes.bytes.>=", ">="], [7, 2, 1, "", "appendByteValues"], [7, 2, 1, "", "byte"], [7, 2, 1, "", "c_str"], [7, 3, 1, "", "chpl_bytes"], [7, 2, 1, "", "count"], [7, 2, 1, "", "createAdoptingBuffer"], [7, 2, 1, "", "createBorrowingBuffer"], [7, 2, 1, "", "createCopyingBuffer"], [7, 2, 1, "", "decode"], [7, 2, 1, "", "dedent"], [7, 2, 1, "", "endsWith"], [7, 2, 1, "", "find"], [7, 2, 1, "", "hash"], [7, 2, 1, "", "indices"], [7, 2, 1, "", "isAlnum"], [7, 2, 1, "", "isAlpha"], [7, 2, 1, "", "isDigit"], [7, 2, 1, "", "isEmpty"], [7, 2, 1, "", "isLower"], [7, 2, 1, "", "isPrintable"], [7, 2, 1, "", "isSpace"], [7, 2, 1, "", "isTitle"], [7, 2, 1, "", "isUpper"], [7, 2, 1, "", "item"], [7, 3, 1, "", "items"], [7, 2, 1, "", "join"], [7, 2, 1, "", "localize"], [7, 2, 1, "", "numBytes"], [7, 2, 1, "", "replace"], [7, 2, 1, "", "rfind"], [7, 2, 1, "", "size"], [7, 3, 1, "", "split"], [7, 2, 1, "", "startsWith"], [7, 2, 1, "", "strip"], [7, 3, 1, "", "these"], [7, 2, 1, "", "this"], [7, 2, 1, "", "toByte"], [7, 2, 1, "", "toHexadecimal"], [7, 2, 1, "", "toLower"], [7, 2, 1, "", "toTitle"], [7, 2, 1, "", "toUpper"]], "BytesCasts": [[8, 4, 1, "", ":"], [8, 4, 1, "", "_real_cast_helper"]], "BytesStringCommon": [[9, 5, 1, "", "CHPL_SHORT_STRING_SIZE"], [9, 6, 1, "", "__serializeHelper"], [9, 4, 1, "", "_cleanupForNumericCast"], [9, 4, 1, "", "_findStartOfNextCodepointFromByte"], [9, 4, 1, "", "byte_isAlnum"], [9, 4, 1, "", "byte_isAlpha"], [9, 4, 1, "", "byte_isAscii"], [9, 4, 1, "", "byte_isDigit"], [9, 4, 1, "", "byte_isLower"], [9, 4, 1, "", "byte_isPrintable"], [9, 4, 1, "", "byte_isUpper"], [9, 4, 1, "", "byte_isWhitespace"], [9, 4, 1, "", "byte_toLower"], [9, 4, 1, "", "byte_toUpper"], [9, 4, 1, "", "chpl__getInPlaceBufferData"], [9, 4, 1, "", "chpl__getInPlaceBufferDataForWrite"], [9, 6, 1, "", "chpl__inPlaceBuffer"], [9, 4, 1, "", "countNumCodepoints"], [9, 4, 1, "", "decodeByteBuffer"], [9, 4, 1, "", "decodeHelp"], [9, 8, 1, "", "decodePolicy"], [9, 4, 1, "", "doAppend"], [9, 4, 1, "", "doAppendSomeBytes"], [9, 4, 1, "", "doAssign"], [9, 4, 1, "", "doConcat"], [9, 4, 1, "", "doDedent"], [9, 4, 1, "", "doEq"], [9, 4, 1, "", "doGreaterThan"], [9, 4, 1, "", "doGreaterThanOrEq"], [9, 4, 1, "", "doJoin"], [9, 4, 1, "", "doJoinIterator"], [9, 4, 1, "", "doLessThan"], [9, 4, 1, "", "doLessThanOrEq"], [9, 4, 1, "", "doMultiply"], [9, 4, 1, "", "doPartition"], [9, 4, 1, "", "doReplace"], [9, 4, 1, "", "doSearchNoEnc"], [9, 10, 1, "", "doSplit"], [9, 4, 1, "", "doSplitHelp"], [9, 10, 1, "", "doSplitWSNoEnc"], [9, 4, 1, "", "doSplitWSNoEncHelp"], [9, 4, 1, "", "doStripNoEnc"], [9, 8, 1, "", "encodePolicy"], [9, 4, 1, "", "getCStr"], [9, 4, 1, "", "getHash"], [9, 4, 1, "", "getIndexType"], [9, 4, 1, "", "getSlice"], [9, 4, 1, "", "getView"], [9, 4, 1, "", "initWithBorrowedBuffer"], [9, 4, 1, "", "initWithNewBuffer"], [9, 4, 1, "", "initWithOwnedBuffer"], [9, 4, 1, "", "isInitialByte"], [9, 4, 1, "", "reinitWithNewBuffer"], [9, 4, 1, "", "reinitWithOwnedBuffer"], [9, 4, 1, "", "resizeBuffer"], [9, 4, 1, "", "resizeBufferForAppend"], [9, 5, 1, "", "showStringBytesInitDeprWarnings"], [9, 4, 1, "", "startsEndsWith"], [9, 5, 1, "", "surrogateEscape"]], "BytesStringCommon.__serializeHelper": [[9, 1, 1, "", "buff"], [9, 1, 1, "", "buffLen"], [9, 1, 1, "", "cachedNumCodepoints"], [9, 1, 1, "", "locale_id"], [9, 1, 1, "", "shortData"], [9, 1, 1, "", "size"]], "BytesStringCommon.decodePolicy": [[9, 9, 1, "", "drop"], [9, 9, 1, "", "escape"], [9, 9, 1, "", "replace"], [9, 9, 1, "", "strict"]], "BytesStringCommon.encodePolicy": [[9, 9, 1, "", "pass"], [9, 9, 1, "", "unescape"]], "CString": [[10, 4, 1, "", ":"], [10, 4, 1, "", "_string_contains"], [10, 4, 1, "", "chpl__autoCopy"], [10, 4, 1, "", "chpl__initCopy"], [10, 4, 1, "", "chpl_free_c_string"], [10, 4, 1, "", "string_index_of"]], "CString.chpl_c_string": [[10, 2, 1, "", "!="], [10, 2, 1, "CString.chpl_c_string.<", "<"], [10, 2, 1, "CString.chpl_c_string.<=", "<="], [10, 2, 1, "", "="], [10, 2, 1, "", "=="], [10, 2, 1, "CString.chpl_c_string.>", ">"], [10, 2, 1, "CString.chpl_c_string.>=", ">="], [10, 2, 1, "", "deserialize"], [10, 2, 1, "", "indexOf"], [10, 2, 1, "", "serialize"], [10, 2, 1, "", "size"], [10, 2, 1, "", "substring"]], "ChapelArray": [[11, 4, 1, "", "!="], [11, 4, 1, "", "%="], [11, 4, 1, "ChapelArray.&=", "&="], [11, 4, 1, "", "**="], [11, 4, 1, "", "*="], [11, 4, 1, "", "+="], [11, 4, 1, "", "-="], [11, 4, 1, "", "/="], [11, 4, 1, "", ":"], [11, 4, 1, "ChapelArray.<<=", "<<="], [11, 4, 1, "ChapelArray.<=>", "<=>"], [11, 4, 1, "", "="], [11, 4, 1, "", "=="], [11, 4, 1, "ChapelArray.>>=", ">>="], [11, 5, 1, "", "CHPL_WARN_DOMAIN_LITERAL"], [11, 5, 1, "", "PODValAccess"], [11, 4, 1, "", "^="], [11, 6, 1, "", "_array"], [11, 4, 1, "", "_deinitElements"], [11, 4, 1, "", "_deinitElementsIsParallel"], [11, 4, 1, "", "_desync"], [11, 4, 1, "", "_do_destroy_arr"], [11, 4, 1, "", "_do_destroy_array"], [11, 4, 1, "", "_freePrivatizedClass"], [11, 4, 1, "", "_getDistribution"], [11, 4, 1, "", "_isPrivatized"], [11, 4, 1, "", "_makeIndexTuple"], [11, 4, 1, "", "_newArray"], [11, 4, 1, "", "_newPrivatizedClass"], [11, 4, 1, "", "_reprivatize"], [11, 8, 1, "", "_tElt"], [11, 4, 1, "", "_validRankChangeArgs"], [11, 5, 1, "", "arrayAsVecGrowthFactor"], [11, 5, 1, "", "arrayLiteralLowBound"], [11, 5, 1, "", "capturedIteratorLowBound"], [11, 4, 1, "", "checkArrayShapesUponAssignment"], [11, 4, 1, "", "chpl__autoCopy"], [11, 4, 1, "", "chpl__buildArrayExpr"], [11, 4, 1, "", "chpl__buildArrayRuntimeType"], [11, 4, 1, "", "chpl__buildAssociativeArrayExpr"], [11, 4, 1, "", "chpl__buildDistDMapValue"], [11, 4, 1, "", "chpl__buildDistType"], [11, 4, 1, "", "chpl__buildDistValue"], [11, 4, 1, "", "chpl__buildIndexType"], [11, 4, 1, "", "chpl__bulkTransferArray"], [11, 4, 1, "", "chpl__bulkTransferPtrArray"], [11, 4, 1, "", "chpl__checkOutEltTypeMatch"], [11, 4, 1, "", "chpl__checkRetEltTypeMatch"], [11, 4, 1, "", "chpl__coerceCopy"], [11, 4, 1, "", "chpl__coerceHelp"], [11, 4, 1, "", "chpl__coerceMove"], [11, 4, 1, "", "chpl__compatibleForBulkTransfer"], [11, 4, 1, "", "chpl__compatibleForWidePtrBulkTransfer"], [11, 4, 1, "", "chpl__convertRuntimeTypeToValue"], [11, 4, 1, "", "chpl__convertValueToRuntimeType"], [11, 4, 1, "", "chpl__countRanges"], [11, 4, 1, "", "chpl__distributed"], [11, 4, 1, "", "chpl__distributionFromDomainRuntimeType"], [11, 4, 1, "", "chpl__eltTypeFromArrayRuntimeType"], [11, 4, 1, "", "chpl__getActualArray"], [11, 4, 1, "", "chpl__getActualDomain"], [11, 4, 1, "", "chpl__initAfterBulkTransfer"], [11, 4, 1, "", "chpl__initCopy"], [11, 4, 1, "", "chpl__initCopy_shapeHelp"], [11, 4, 1, "", "chpl__instanceTypeFromArrayRuntimeType"], [11, 4, 1, "", "chpl__instanceTypeFromDomainRuntimeType"], [11, 4, 1, "", "chpl__isArrayView"], [11, 4, 1, "", "chpl__isDROrDRView"], [11, 4, 1, "", "chpl__isDomainView"], [11, 4, 1, "", "chpl__serializeAssignment"], [11, 4, 1, "", "chpl__supportedDataTypeForBulkTransfer"], [11, 4, 1, "", "chpl__throwErrorUnchecked"], [11, 4, 1, "", "chpl__transferArray"], [11, 4, 1, "", "chpl__uncheckedArrayTransfer"], [11, 4, 1, "", "chpl__unref"], [11, 4, 1, "", "chpl_arrayToPtr"], [11, 4, 1, "", "chpl_arrayToPtrConst"], [11, 4, 1, "", "chpl_arrayToPtrErrorHelper"], [11, 4, 1, "", "chpl_computeUnifiedType"], [11, 4, 1, "", "chpl_computeUnifiedTypeHelp"], [11, 4, 1, "", "chpl_decRefCountsForDomainsInArrayEltTypes"], [11, 4, 1, "", "chpl_defaultComparator"], [11, 4, 1, "", "chpl_incRefCountsForDomainsInArrayEltTypes"], [11, 5, 1, "", "debugArrayAsVec"], [11, 5, 1, "", "debugBulkTransfer"], [11, 5, 1, "", "debugLocalizedConstDomains"], [11, 5, 1, "", "debugOptimizedSwap"], [11, 5, 1, "", "disableConstDomainOpt"], [11, 6, 1, "", "dmap"], [11, 4, 1, "", "isCollapsedDimension"], [11, 10, 1, "", "linearize"], [11, 5, 1, "", "localizeConstDomains"], [11, 5, 1, "", "logAllArrEltAccess"], [11, 5, 1, "", "logDistArrEltAccess"], [11, 5, 1, "", "nullPid"], [11, 5, 1, "", "numPrivateObjects"], [11, 4, 1, "", "reshape"], [11, 4, 1, "", "shouldReturnRvalueByValue"], [11, 5, 1, "", "useBulkPtrTransfer"], [11, 5, 1, "", "useBulkTransfer"], [11, 5, 1, "", "useBulkTransferDist"], [11, 5, 1, "", "useBulkTransferStride"], [11, 4, 1, "", "|="]], "ChapelArray._array": [[11, 2, 1, "", "IRV"], [11, 2, 1, "", "_dom"], [11, 1, 1, "", "_instance"], [11, 1, 1, "", "_pid"], [11, 2, 1, "", "_scan"], [11, 1, 1, "", "_unowned"], [11, 2, 1, "", "_value"], [11, 2, 1, "", "checkAccess"], [11, 2, 1, "", "checkRankChange"], [11, 2, 1, "", "checkSlice"], [11, 2, 1, "", "chpl__deserialize"], [11, 2, 1, "", "chpl__isDense1DArray"], [11, 2, 1, "", "chpl__localSliceDefaultArithArrHelp"], [11, 2, 1, "", "chpl__promotionType"], [11, 2, 1, "", "chpl__serialize"], [11, 2, 1, "", "chpl_checkArrArgDoms"], [11, 2, 1, "", "chpl_isNonDistributedArray"], [11, 2, 1, "", "count"], [11, 2, 1, "", "deinit"], [11, 2, 1, "", "deserialize"], [11, 2, 1, "", "deserializeFrom"], [11, 2, 1, "", "dim"], [11, 2, 1, "", "dims"], [11, 2, 1, "", "displayRepresentation"], [11, 2, 1, "", "eltType"], [11, 2, 1, "", "equals"], [11, 2, 1, "", "find"], [11, 2, 1, "", "first"], [11, 2, 1, "", "fullIdxType"], [11, 2, 1, "", "hasPosNegUnitStride"], [11, 2, 1, "", "hasSingleLocalSubdomain"], [11, 2, 1, "", "hasUnitStride"], [11, 2, 1, "", "idxType"], [11, 2, 1, "", "indices"], [11, 2, 1, "", "isAssociative"], [11, 2, 1, "", "isEmpty"], [11, 2, 1, "", "isIrregular"], [11, 2, 1, "", "isRectangular"], [11, 2, 1, "", "isSparse"], [11, 2, 1, "", "iteratorYieldsLocalElements"], [11, 2, 1, "", "last"], [11, 2, 1, "", "localAccess"], [11, 2, 1, "", "localSlice"], [11, 2, 1, "", "localSubdomain"], [11, 3, 1, "", "localSubdomains"], [11, 2, 1, "", "rank"], [11, 2, 1, "", "reindex"], [11, 2, 1, "", "serialize"], [11, 2, 1, "", "shape"], [11, 2, 1, "", "size"], [11, 2, 1, "", "sizeAs"], [11, 2, 1, "", "strides"], [11, 2, 1, "", "targetLocales"], [11, 3, 1, "", "these"], [11, 2, 1, "", "this"], [11, 2, 1, "", "tryCopy"]], "ChapelArray._tElt": [[11, 9, 1, "", "assign"], [11, 9, 1, "", "initCopy"], [11, 9, 1, "", "move"]], "ChapelArrayViewElision": [[12, 4, 1, "", ":"], [12, 4, 1, "", "=="], [12, 4, 1, "", "chpl__ave_exprCanBeProtoSlice"], [12, 4, 1, "", "chpl__ave_protoSlicesSupportAssignment"], [12, 4, 1, "", "chpl__createConstProtoSlice"], [12, 4, 1, "", "chpl__createProtoSlice"], [12, 6, 1, "", "chpl__protoSlice"], [12, 4, 1, "", "isProtoSlice"]], "ChapelArrayViewElision.chpl__protoSlice": [[12, 2, 1, "", "_value"], [12, 2, 1, "", "dims"], [12, 2, 1, "", "domOrRange"], [12, 2, 1, "", "eltType"], [12, 2, 1, "", "init"], [12, 2, 1, "", "init="], [12, 1, 1, "", "isConst"], [12, 1, 1, "", "isRankChange"], [12, 2, 1, "", "isRectangular"], [12, 1, 1, "", "ptrToArr"], [12, 1, 1, "", "ranges"], [12, 1, 1, "", "rank"], [12, 2, 1, "", "sizeAs"], [12, 1, 1, "", "slicingExprType"], [12, 3, 1, "", "these"]], "ChapelAutoAggregation": [[13, 4, 1, "", "chpl__arrayIteratorYieldsLocalElements"], [13, 4, 1, "", "chpl_dstAggregatorFor"], [13, 4, 1, "", "chpl_srcAggregatorFor"]], "ChapelAutoLocalAccess": [[14, 4, 1, "", "chpl__ala_offsetCheck"], [14, 4, 1, "", "chpl__dynamicAutoLocalCheck"], [14, 4, 1, "", "chpl__isArrayViewWithDifferentDist"], [14, 4, 1, "", "chpl__staticAutoLocalCheck"]], "ChapelBase": [[15, 4, 1, "", "!"], [15, 4, 1, "", "!="], [15, 4, 1, "", "%"], [15, 4, 1, "", "%="], [15, 4, 1, "ChapelBase.&", "&"], [15, 4, 1, "ChapelBase.&=", "&="], [15, 4, 1, "", "*"], [15, 4, 1, "", "**"], [15, 4, 1, "", "**="], [15, 4, 1, "", "*="], [15, 4, 1, "", "+"], [15, 4, 1, "", "+="], [15, 4, 1, "", "-"], [15, 4, 1, "", "-="], [15, 4, 1, "", "/"], [15, 4, 1, "", "/="], [15, 4, 1, "", ":"], [15, 4, 1, "ChapelBase.<", "<"], [15, 4, 1, "ChapelBase.<<", "<<"], [15, 4, 1, "ChapelBase.<<=", "<<="], [15, 4, 1, "ChapelBase.<=", "<="], [15, 4, 1, "ChapelBase.<=>", "<=>"], [15, 4, 1, "", "="], [15, 4, 1, "", "=="], [15, 4, 1, "ChapelBase.>", ">"], [15, 4, 1, "ChapelBase.>=", ">="], [15, 4, 1, "ChapelBase.>>", ">>"], [15, 4, 1, "ChapelBase.>>=", ">>="], [15, 8, 1, "", "ArrayInit"], [15, 5, 1, "", "QIO_AGGREGATE_FORMAT_BRACES"], [15, 5, 1, "", "QIO_AGGREGATE_FORMAT_CHPL"], [15, 5, 1, "", "QIO_AGGREGATE_FORMAT_JSON"], [15, 5, 1, "", "QIO_ARRAY_FORMAT_CHPL"], [15, 5, 1, "", "QIO_ARRAY_FORMAT_JSON"], [15, 5, 1, "", "QIO_ARRAY_FORMAT_SPACE"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_AGGREGATE"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_ARRAY"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_BYTE_ORDER"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_COMPLEX"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_IS_NATIVE_BYTE_ORDER"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_SKIP_UNKNOWN_FIELDS"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_STRING"], [15, 5, 1, "", "QIO_STYLE_ELEMENT_TUPLE"], [15, 5, 1, "", "QIO_TUPLE_FORMAT_CHPL"], [15, 5, 1, "", "QIO_TUPLE_FORMAT_JSON"], [15, 5, 1, "", "QIO_TUPLE_FORMAT_SPACE"], [15, 4, 1, "", "^"], [15, 4, 1, "", "^="], [15, 0, 1, "", "_EndCount"], [15, 0, 1, "", "_EndCountBase"], [15, 4, 1, "", "_basePowerTwo"], [15, 4, 1, "", "_canOptimizeExp"], [15, 4, 1, "", "_cond_invalid"], [15, 4, 1, "", "_cond_test"], [15, 0, 1, "", "_ddata"], [15, 4, 1, "", "_ddata_allocate"], [15, 4, 1, "", "_ddata_allocate_noinit"], [15, 4, 1, "", "_ddata_allocate_noinit_gpu_shared"], [15, 4, 1, "", "_ddata_allocate_postalloc"], [15, 4, 1, "", "_ddata_fill"], [15, 4, 1, "", "_ddata_free"], [15, 4, 1, "", "_ddata_reallocate"], [15, 4, 1, "", "_ddata_shift"], [15, 4, 1, "", "_ddata_sizeof_element"], [15, 4, 1, "", "_ddata_supports_reallocate"], [15, 4, 1, "", "_downDynamicEndCount"], [15, 4, 1, "", "_downEndCount"], [15, 4, 1, "", "_endCountAlloc"], [15, 4, 1, "", "_endCountFree"], [15, 4, 1, "", "_expBaseHelp"], [15, 4, 1, "", "_expHelp"], [15, 4, 1, "", "_i2r"], [15, 4, 1, "", "_intExpHelp"], [15, 0, 1, "", "_object"], [15, 4, 1, "", "_r2i"], [15, 0, 1, "", "_ref"], [15, 7, 1, "", "_remoteEndCountType"], [15, 4, 1, "", "_removed_cast"], [15, 4, 1, "", "_to_borrowed"], [15, 4, 1, "", "_to_nilable"], [15, 4, 1, "", "_to_nonnil"], [15, 4, 1, "", "_to_unmanaged"], [15, 4, 1, "", "_try_ddata_allocate"], [15, 4, 1, "", "_upDynamicEndCount"], [15, 4, 1, "", "_upEndCount"], [15, 4, 1, "", "_waitEndCount"], [15, 5, 1, "", "assocParSafeDefault"], [15, 4, 1, "", "bitshiftChecks"], [15, 7, 1, "", "c_fn_ptr"], [15, 7, 1, "", "c_string"], [15, 0, 1, "", "chpl_ModuleDeinit"], [15, 4, 1, "", "chpl__autoCopy"], [15, 4, 1, "", "chpl__autoDestroy"], [15, 4, 1, "", "chpl__bothLocal"], [15, 4, 1, "", "chpl__delete"], [15, 4, 1, "", "chpl__initCopy"], [15, 4, 1, "", "chpl__unref"], [15, 4, 1, "", "chpl_after_forall_fence"], [15, 5, 1, "", "chpl_arrayInitMethodRuntimeSelectable"], [15, 4, 1, "", "chpl_boundedCoforallSize"], [15, 4, 1, "", "chpl_castUnmanagedError"], [15, 4, 1, "", "chpl_checkBorrowIfVar"], [15, 4, 1, "", "chpl_checkCastAbstractEnumError"], [15, 4, 1, "", "chpl_checkLegalTypeFieldAccessor"], [15, 4, 1, "", "chpl_comm_task_create"], [15, 4, 1, "", "chpl_comm_task_end"], [15, 4, 1, "", "chpl_comm_unordered_task_fence"], [15, 4, 1, "", "chpl_config_get_value"], [15, 4, 1, "", "chpl_config_has_value"], [15, 8, 1, "", "chpl_ddataResizePolicy"], [15, 5, 1, "", "chpl_defaultArrayInitMethod"], [15, 5, 1, "", "chpl_defaultGpuArrayInitMethod"], [15, 4, 1, "", "chpl_field_gt"], [15, 4, 1, "", "chpl_field_lt"], [15, 4, 1, "", "chpl_field_neq"], [15, 4, 1, "", "chpl_getArrayInitMethod"], [15, 4, 1, "", "chpl_isDdata"], [15, 7, 1, "", "chpl_mem_descInt_t"], [15, 5, 1, "", "chpl_moduleDeinitFuns"], [15, 4, 1, "", "chpl_resetTaskSpawn"], [15, 4, 1, "", "chpl_rt_reset_task_spawn"], [15, 4, 1, "", "chpl_setArrayInitMethod"], [15, 4, 1, "", "chpl_shouldDoGpuInit"], [15, 4, 1, "", "chpl_statementLevelSymbol"], [15, 5, 1, "", "chpl_stringMinAllocSize"], [15, 4, 1, "", "chpl_supportsBoundedCoforall"], [15, 4, 1, "", "chpl_typeSupportsPrimitiveCast"], [15, 5, 1, "", "chpl_unstableInternalSymbolForTesting"], [15, 4, 1, "", "chpl_waitDynamicEndCount"], [15, 5, 1, "", "commDiagsTrackEndCounts"], [15, 4, 1, "", "defaultAtomicTaskCount"], [15, 5, 1, "", "defaultLowBound"], [15, 5, 1, "", "enablePostfixBangChecks"], [15, 6, 1, "", "endCountDiagsManager"], [15, 5, 1, "", "fcfsUsePointerImplementation"], [15, 4, 1, "", "func"], [15, 4, 1, "", "init_elts"], [15, 4, 1, "", "init_elts_method"], [15, 4, 1, "", "isBorrowedOrUnmanagedClassType"], [15, 4, 1, "", "isGenericType"], [15, 4, 1, "", "isIterator"], [15, 4, 1, "", "isNilableClassType"], [15, 4, 1, "", "isNonNilableClassType"], [15, 4, 1, "", "isNonnegative"], [15, 4, 1, "", "isTrue"], [15, 8, 1, "", "iterKind"], [15, 5, 1, "", "noParSafeWarning"], [15, 0, 1, "", "object"], [15, 2, 1, "", "param"], [15, 2, 1, "", "proc"], [15, 5, 1, "", "rootLocaleInitialized"], [15, 5, 1, "", "useAtomicTaskCnt"], [15, 5, 1, "", "warnMaximalRange"], [15, 4, 1, "", "|"], [15, 4, 1, "", "|="], [15, 4, 1, "", "~"]], "ChapelBase.ArrayInit": [[15, 9, 1, "", "gpuInit"], [15, 9, 1, "", "heuristicInit"], [15, 9, 1, "", "noInit"], [15, 9, 1, "", "parallelInit"], [15, 9, 1, "", "serialInit"]], "ChapelBase._EndCount": [[15, 2, 1, "", "add"], [15, 1, 1, "", "i"], [15, 1, 1, "", "iType"], [15, 2, 1, "", "init"], [15, 2, 1, "", "sub"], [15, 1, 1, "", "taskCnt"], [15, 1, 1, "", "taskType"], [15, 2, 1, "", "waitFor"]], "ChapelBase._EndCountBase": [[15, 1, 1, "", "errors"]], "ChapelBase._ddata": [[15, 1, 1, "", "eltType"], [15, 2, 1, "", "this"]], "ChapelBase._ref": [[15, 1, 1, "", "_val"]], "ChapelBase.c_fn_ptr": [[15, 2, 1, "", "="], [15, 2, 1, "", "this"]], "ChapelBase.chpl_ModuleDeinit": [[15, 1, 1, "", "deinitFun"], [15, 1, 1, "", "moduleName"], [15, 1, 1, "", "prevModule"], [15, 2, 1, "", "serialize"]], "ChapelBase.chpl_anycomplex": [[15, 2, 1, "", "im"], [15, 2, 1, "", "re"]], "ChapelBase.chpl_ddataResizePolicy": [[15, 9, 1, "", "normalInit"], [15, 9, 1, "", "skipInit"], [15, 9, 1, "", "skipInitButClearMem"]], "ChapelBase.endCountDiagsManager": [[15, 2, 1, "", "enterContext"], [15, 2, 1, "", "exitContext"], [15, 1, 1, "", "prevDiagsDisabledVal"], [15, 1, 1, "", "taskInfo"]], "ChapelBase.iterKind": [[15, 9, 1, "", "follower"], [15, 9, 1, "", "leader"], [15, 9, 1, "", "standalone"]], "ChapelContext": [[17, 4, 1, "", "chpl__verifyTypeContext"]], "ChapelDebugPrint": [[18, 4, 1, "", "chpl__testPar"], [18, 5, 1, "", "chpl__testParFlag"], [18, 5, 1, "", "chpl__testParOn"], [18, 4, 1, "", "chpl__testParStart"], [18, 4, 1, "", "chpl__testParStop"], [18, 4, 1, "", "chpl__testParWriteln"], [18, 4, 1, "", "chpl_debug_stringify"], [18, 4, 1, "", "chpl_debug_writeln"]], "ChapelDistribution": [[19, 0, 1, "", "AbsBaseArr"], [19, 0, 1, "", "BaseArr"], [19, 0, 1, "", "BaseArrOverRectangularDom"], [19, 0, 1, "", "BaseAssociativeDom"], [19, 0, 1, "", "BaseDist"], [19, 0, 1, "", "BaseDom"], [19, 0, 1, "", "BaseRectangularArr"], [19, 0, 1, "", "BaseRectangularDom"], [19, 0, 1, "", "BaseSparseArr"], [19, 0, 1, "", "BaseSparseArrImpl"], [19, 0, 1, "", "BaseSparseDom"], [19, 0, 1, "", "BaseSparseDomImpl"], [19, 6, 1, "", "SparseIndexBuffer"], [19, 4, 1, "", "_delete_arr"], [19, 4, 1, "", "_delete_dist"], [19, 4, 1, "", "_delete_dom"], [19, 6, 1, "", "_distribution"], [19, 4, 1, "", "chpl_assignDomainWithGetSetIndices"], [19, 4, 1, "", "chpl_assignDomainWithIndsIterSafeForRemoving"]], "ChapelDistribution.AbsBaseArr": [[19, 2, 1, "", "decEltCountsIfNeeded"], [19, 1, 1, "", "eltType"]], "ChapelDistribution.BaseArr": [[19, 1, 1, "", "_decEltRefCounts"], [19, 2, 1, "", "_defaultInitSlot"], [19, 2, 1, "", "_deinitSlot"], [19, 2, 1, "", "_finishRehash"], [19, 2, 1, "", "_moveElementDuringRehash"], [19, 2, 1, "", "_purge"], [19, 2, 1, "", "_resize"], [19, 1, 1, "", "_resizePolicy"], [19, 2, 1, "", "_startRehash"], [19, 2, 1, "", "chpl__rvfMe"], [19, 2, 1, "", "chpl_isElementTypeDefaultInitializable"], [19, 2, 1, "", "chpl_isElementTypeNonNilableClass"], [19, 2, 1, "", "chpl_setResizePolicy"], [19, 2, 1, "", "chpl_unsafeAssignHaltUninitializedElement"], [19, 2, 1, "", "chpl_unsafeAssignIsClassElementNil"], [19, 2, 1, "", "decEltCountsIfNeeded"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "doiCanBulkTransferRankChange"], [19, 2, 1, "", "dsiDestroyArr"], [19, 2, 1, "", "dsiDisplayRepresentation"], [19, 2, 1, "", "dsiElementDeinitializationComplete"], [19, 2, 1, "", "dsiElementInitializationComplete"], [19, 2, 1, "", "dsiGetBaseDom"], [19, 2, 1, "", "dsiIteratorYieldsLocalElements"], [19, 2, 1, "", "dsiPostReallocate"], [19, 2, 1, "", "dsiReallocate"], [19, 2, 1, "", "dsiRequiresPrivatization"], [19, 2, 1, "", "dsiStaticFastFollowCheck"], [19, 2, 1, "", "dsiSupportsAlignedFollower"], [19, 2, 1, "", "dsiSupportsPrivatization"], [19, 2, 1, "", "isDefaultRectangular"], [19, 2, 1, "", "isRankChangeArrayView"], [19, 2, 1, "", "isReindexArrayView"], [19, 2, 1, "", "isSliceArrayView"], [19, 1, 1, "", "next"], [19, 1, 1, "", "pid"], [19, 1, 1, "", "prev"], [19, 2, 1, "", "remove"], [19, 2, 1, "", "sparseBulkShiftArray"], [19, 2, 1, "", "sparseShiftArray"], [19, 2, 1, "", "sparseShiftArrayBack"]], "ChapelDistribution.BaseArrOverRectangularDom": [[19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiPostReallocate"], [19, 2, 1, "", "dsiReallocate"], [19, 2, 1, "", "hasPosNegUnitStride"], [19, 2, 1, "", "hasUnitStride"], [19, 1, 1, "", "idxType"], [19, 1, 1, "", "rank"], [19, 1, 1, "", "strides"]], "ChapelDistribution.BaseAssociativeDom": [[19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiAdd"], [19, 2, 1, "", "dsiClear"], [19, 2, 1, "", "isAssociative"], [19, 2, 1, "", "rank"]], "ChapelDistribution.BaseDist": [[19, 1, 1, "", "_domsLock"], [19, 1, 1, "", "_doms_containing_dist"], [19, 1, 1, "", "_free_when_no_doms"], [19, 2, 1, "", "add_dom"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiDestroyDist"], [19, 2, 1, "", "dsiDisplayRepresentation"], [19, 2, 1, "", "dsiIsLayout"], [19, 2, 1, "", "dsiNewAssociativeDom"], [19, 2, 1, "", "dsiNewRectangularDom"], [19, 2, 1, "", "dsiNewSparseDom"], [19, 2, 1, "", "dsiRequiresPrivatization"], [19, 2, 1, "", "dsiSupportsPrivatization"], [19, 2, 1, "", "dsiTrackDomains"], [19, 1, 1, "", "pid"], [19, 2, 1, "", "remove"], [19, 2, 1, "", "remove_dom"], [19, 2, 1, "", "singleton"], [19, 2, 1, "", "trackDomains"]], "ChapelDistribution.BaseDom": [[19, 3, 1, "", "_arrs"], [19, 1, 1, "", "_arrsLock"], [19, 1, 1, "", "_arrs_containing_dom"], [19, 1, 1, "", "_arrs_head"], [19, 1, 1, "", "_free_when_no_arrs"], [19, 2, 1, "", "add_arr"], [19, 2, 1, "", "add_containing_arr"], [19, 1, 1, "", "definedConst"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "dnsError"], [19, 2, 1, "", "dsiAlignedHigh"], [19, 2, 1, "", "dsiAlignedLow"], [19, 2, 1, "", "dsiAlignment"], [19, 2, 1, "", "dsiAutoLocalAccessOffsetCheck"], [19, 2, 1, "", "dsiCreateIndexBuffer"], [19, 2, 1, "", "dsiDestroyDom"], [19, 2, 1, "", "dsiDisplayRepresentation"], [19, 2, 1, "", "dsiFirst"], [19, 2, 1, "", "dsiHigh"], [19, 2, 1, "", "dsiIndexOrder"], [19, 2, 1, "", "dsiIteratorYieldsLocalElements"], [19, 2, 1, "", "dsiLast"], [19, 2, 1, "", "dsiLinksDistribution"], [19, 2, 1, "", "dsiLow"], [19, 2, 1, "", "dsiMyDist"], [19, 2, 1, "", "dsiRequiresPrivatization"], [19, 2, 1, "", "dsiStride"], [19, 2, 1, "", "dsiSupportsAutoLocalAccess"], [19, 2, 1, "", "dsiSupportsOffsetAutoLocalAccess"], [19, 2, 1, "", "dsiSupportsPrivatization"], [19, 2, 1, "", "init"], [19, 2, 1, "", "isAssociative"], [19, 2, 1, "", "isDefaultRectangular"], [19, 2, 1, "", "isRankChangeDomainView"], [19, 2, 1, "", "isRectangular"], [19, 2, 1, "", "isReindexDomainView"], [19, 2, 1, "", "isSliceDomainView"], [19, 2, 1, "", "isSparse"], [19, 2, 1, "", "linksDistribution"], [19, 1, 1, "", "pid"], [19, 2, 1, "", "remove"], [19, 2, 1, "", "remove_arr"], [19, 2, 1, "", "remove_containing_arr"], [19, 2, 1, "", "trackArrays"]], "ChapelDistribution.BaseRectangularArr": [[19, 2, 1, "", "chpl_isElementTypeDefaultInitializable"], [19, 2, 1, "", "chpl_isElementTypeNonNilableClass"], [19, 2, 1, "", "chpl_unsafeAssignHaltUninitializedElement"], [19, 2, 1, "", "decEltCountsIfNeeded"], [19, 2, 1, "", "deinit"], [19, 1, 1, "", "eltType"]], "ChapelDistribution.BaseRectangularDom": [[19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiAdd"], [19, 2, 1, "", "dsiRemove"], [19, 2, 1, "", "getBaseArrType"], [19, 2, 1, "", "hasPosNegUnitStride"], [19, 2, 1, "", "hasUnitStride"], [19, 1, 1, "", "idxType"], [19, 2, 1, "", "isRectangular"], [19, 1, 1, "", "rank"], [19, 1, 1, "", "strides"]], "ChapelDistribution.BaseSparseArr": [[19, 2, 1, "", "deinit"], [19, 1, 1, "", "dom"], [19, 2, 1, "", "dsiGetBaseDom"], [19, 1, 1, "", "idxType"], [19, 1, 1, "", "rank"]], "ChapelDistribution.BaseSparseArrImpl": [[19, 2, 1, "", "IRV"], [19, 1, 1, "", "data"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiDestroyArr"], [19, 2, 1, "", "dsiElementDeinitializationComplete"], [19, 2, 1, "", "dsiElementInitializationComplete"], [19, 2, 1, "", "init"], [19, 1, 1, "", "irv"], [19, 2, 1, "", "sparseBulkShiftArray"], [19, 2, 1, "", "sparseShiftArray"], [19, 2, 1, "", "sparseShiftArrayBack"]], "ChapelDistribution.BaseSparseDom": [[19, 2, 1, "", "boundsCheck"], [19, 2, 1, "", "canDoDirectAssignment"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiAlignedHigh"], [19, 2, 1, "", "dsiAlignedLow"], [19, 2, 1, "", "dsiAlignment"], [19, 2, 1, "", "dsiBulkAdd"], [19, 2, 1, "", "dsiBulkAddNoPreserveInds"], [19, 2, 1, "", "dsiClear"], [19, 2, 1, "", "dsiCreateIndexBuffer"], [19, 2, 1, "", "dsiDim"], [19, 2, 1, "", "dsiDims"], [19, 2, 1, "", "dsiFirst"], [19, 2, 1, "", "dsiHigh"], [19, 2, 1, "", "dsiLast"], [19, 2, 1, "", "dsiLow"], [19, 2, 1, "", "dsiNumIndices"], [19, 2, 1, "", "dsiSize"], [19, 2, 1, "", "dsiStride"], [19, 2, 1, "", "getNNZ"], [19, 1, 1, "", "idxType"], [19, 2, 1, "", "isSparse"], [19, 1, 1, "", "parentDom"], [19, 1, 1, "", "rank"]], "ChapelDistribution.BaseSparseDomImpl": [[19, 2, 1, "", "__getActualInsertPts"], [19, 2, 1, "", "_bulkGrow"], [19, 2, 1, "", "_countDuplicates"], [19, 2, 1, "", "_grow"], [19, 2, 1, "", "_shrink"], [19, 2, 1, "", "bulkAdd_help"], [19, 2, 1, "", "bulkAdd_prepareInds"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "dsiBulkAdd"], [19, 2, 1, "", "dsiBulkAddNoPreserveInds"], [19, 2, 1, "", "dsiClear"], [19, 1, 1, "", "nnzDom"]], "ChapelDistribution.SparseIndexBuffer": [[19, 2, 1, "", "add"], [19, 1, 1, "", "buf"], [19, 1, 1, "", "bufDom"], [19, 2, 1, "", "commit"], [19, 1, 1, "", "cur"], [19, 2, 1, "", "deinit"], [19, 1, 1, "", "idxType"], [19, 2, 1, "", "init"], [19, 1, 1, "", "obj"], [19, 1, 1, "", "rank"]], "ChapelDistribution._distribution": [[19, 2, 1, "", "_do_destroy"], [19, 1, 1, "", "_instance"], [19, 1, 1, "", "_pid"], [19, 1, 1, "", "_unowned"], [19, 2, 1, "", "_value"], [19, 2, 1, "", "clone"], [19, 2, 1, "", "deinit"], [19, 2, 1, "", "deserialize"], [19, 2, 1, "", "deserializeFrom"], [19, 2, 1, "", "displayRepresentation"], [19, 2, 1, "", "idxToLocale"], [19, 2, 1, "", "init"], [19, 2, 1, "", "init="], [19, 2, 1, "", "newAssociativeDom"], [19, 2, 1, "", "newRectangularDom"], [19, 2, 1, "", "newSparseDom"], [19, 2, 1, "", "serialize"], [19, 2, 1, "", "targetLocales"]], "ChapelDomain": [[20, 4, 1, "", "!="], [20, 4, 1, "ChapelDomain.&", "&"], [20, 4, 1, "ChapelDomain.&=", "&="], [20, 4, 1, "", "+"], [20, 4, 1, "", "+="], [20, 4, 1, "", "-"], [20, 4, 1, "", "-="], [20, 4, 1, "", "="], [20, 4, 1, "", "=="], [20, 4, 1, "", "^"], [20, 4, 1, "", "^="], [20, 6, 1, "", "_domain"], [20, 4, 1, "", "_getDomain"], [20, 4, 1, "", "align"], [20, 4, 1, "", "by"], [20, 4, 1, "", "chpl__buildDomainExpr"], [20, 4, 1, "", "chpl__buildDomainRuntimeType"], [20, 4, 1, "", "chpl__buildSparseDomainRuntimeType"], [20, 4, 1, "", "chpl__buildSparseDomainRuntimeTypeForParentDomain"], [20, 4, 1, "", "chpl__buildSubDomainType"], [20, 4, 1, "", "chpl__checkDomainsMatch"], [20, 4, 1, "", "chpl__checkTupIrregDomAssign"], [20, 4, 1, "", "chpl__coerceCopy"], [20, 4, 1, "", "chpl__coerceMove"], [20, 4, 1, "", "chpl__convertRuntimeTypeToValue"], [20, 4, 1, "", "chpl__convertValueToRuntimeType"], [20, 4, 1, "", "chpl__domainFromArrayRuntimeType"], [20, 4, 1, "", "chpl__ensureDomainExpr"], [20, 4, 1, "", "chpl__isLegalRectTupDomAssign"], [20, 4, 1, "", "chpl__isRectangularDomType"], [20, 4, 1, "", "chpl__isSparseDomType"], [20, 4, 1, "", "chpl__isTupleOfRanges"], [20, 4, 1, "", "chpl__parentDomainFromDomainRuntimeType"], [20, 4, 1, "", "chpl_countDomHelp"], [20, 4, 1, "", "chpl_domainDistIsLayout"], [20, 4, 1, "", "chpl_isAssociativeDomClass"], [20, 4, 1, "", "chpl_sameDomainKind"], [20, 5, 1, "", "defaultHashTableResizeThreshold"], [20, 4, 1, "", "makeRectangularDomain"], [20, 5, 1, "", "noNegativeStrideWarnings"], [20, 4, 1, "", "tupleOfRangesSlice"], [20, 4, 1, "", "|"], [20, 4, 1, "", "|="]], "ChapelDomain._domain": [[20, 2, 1, "", ":"], [20, 2, 1, "", "_do_destroy"], [20, 1, 1, "", "_instance"], [20, 1, 1, "", "_pid"], [20, 1, 1, "", "_unowned"], [20, 2, 1, "", "_value"], [20, 2, 1, "", "add"], [20, 2, 1, "", "alignment"], [20, 2, 1, "", "autoLocalAccessOffsetCheck"], [20, 2, 1, "", "boundingBox"], [20, 2, 1, "", "buildArray"], [20, 2, 1, "", "buildArrayWith"], [20, 2, 1, "", "bulkAdd"], [20, 2, 1, "", "bulkAddNoPreserveInds"], [20, 2, 1, "", "checkOrderBounds"], [20, 2, 1, "", "chpl__deserialize"], [20, 2, 1, "", "chpl__promotionType"], [20, 2, 1, "", "chpl__serialize"], [20, 2, 1, "", "chpl__unTranslate"], [20, 2, 1, "", "chpl_checkEltType"], [20, 2, 1, "", "chpl_checkNegativeStride"], [20, 2, 1, "", "chpl_domainCastHelper"], [20, 2, 1, "", "chpl_domainCastIsSafe"], [20, 2, 1, "", "chpl_domainTryCastHelper"], [20, 2, 1, "", "chpl_domainTryCastIsSafe"], [20, 2, 1, "", "chpl_integralIdxType"], [20, 2, 1, "", "chpl_shapeAs"], [20, 2, 1, "", "clear"], [20, 2, 1, "", "contains"], [20, 2, 1, "", "createIndexBuffer"], [20, 2, 1, "", "defaultSparseDist"], [20, 2, 1, "", "deinit"], [20, 2, 1, "", "deserialize"], [20, 2, 1, "", "deserializeFrom"], [20, 2, 1, "", "dim"], [20, 3, 1, "", "dimIter"], [20, 2, 1, "", "dims"], [20, 2, 1, "", "displayRepresentation"], [20, 2, 1, "", "dist"], [20, 2, 1, "", "distribution"], [20, 2, 1, "", "expand"], [20, 2, 1, "", "exterior"], [20, 2, 1, "", "first"], [20, 2, 1, "", "fullIdxType"], [20, 2, 1, "", "getIndices"], [20, 2, 1, "", "hasPosNegUnitStride"], [20, 2, 1, "", "hasSingleLocalSubdomain"], [20, 2, 1, "", "hasUnitStride"], [20, 2, 1, "", "high"], [20, 2, 1, "", "highBound"], [20, 2, 1, "", "idxType"], [20, 2, 1, "", "indexOrder"], [20, 2, 1, "", "indices"], [20, 2, 1, "", "init"], [20, 2, 1, "", "init="], [20, 2, 1, "", "interior"], [20, 2, 1, "", "isAssociative"], [20, 2, 1, "", "isEmpty"], [20, 2, 1, "", "isIrregular"], [20, 2, 1, "", "isRectangular"], [20, 2, 1, "", "isSparse"], [20, 2, 1, "", "iteratorYieldsLocalElements"], [20, 2, 1, "", "last"], [20, 2, 1, "", "localSlice"], [20, 2, 1, "", "localSubdomain"], [20, 3, 1, "", "localSubdomains"], [20, 2, 1, "", "low"], [20, 2, 1, "", "lowBound"], [20, 2, 1, "", "orderToIndex"], [20, 2, 1, "", "position"], [20, 2, 1, "", "rank"], [20, 2, 1, "", "remove"], [20, 2, 1, "", "requestCapacity"], [20, 2, 1, "", "serialize"], [20, 2, 1, "", "setIndices"], [20, 2, 1, "", "shape"], [20, 2, 1, "", "size"], [20, 2, 1, "", "sizeAs"], [20, 3, 1, "", "sorted"], [20, 2, 1, "", "stride"], [20, 2, 1, "", "strides"], [20, 2, 1, "", "supportsAutoLocalAccess"], [20, 2, 1, "", "supportsOffsetAutoLocalAccess"], [20, 2, 1, "", "targetLocales"], [20, 3, 1, "", "these"], [20, 2, 1, "", "this"], [20, 2, 1, "", "translate"], [20, 2, 1, "", "tryCast"], [20, 2, 1, "", "tryCreateArray"], [20, 2, 1, "", "unsafeAssign"], [20, 6, 1, "", "unsafeAssignManager"]], "ChapelDomain._domain.unsafeAssignManager": [[20, 3, 1, "", "_arraysOverLhsDom"], [20, 2, 1, "", "_checkIfAllElementsAreInitialized"], [20, 2, 1, "", "_checkNoChecksWhenNonDefaultInitializableEltType"], [20, 2, 1, "", "_checkThatArrayShapeIsSupported"], [20, 2, 1, "", "_checkThatIndexMatchesArrayShape"], [20, 1, 1, "", "_checks"], [20, 2, 1, "", "_ensureNoLongerManagingThis"], [20, 1, 1, "", "_isActiveManager"], [20, 2, 1, "", "_isArrayOwnedByLhsDomain"], [20, 2, 1, "", "_isBaseArrClassElementNil"], [20, 1, 1, "", "_lhsInstance"], [20, 1, 1, "", "_lhsPid"], [20, 2, 1, "", "_moveInitializeElement"], [20, 1, 1, "", "_oldLhsDomainCopy"], [20, 1, 1, "", "_rhsInstance"], [20, 1, 1, "", "_rhsPid"], [20, 2, 1, "", "checks"], [20, 2, 1, "", "deinit"], [20, 2, 1, "", "enterContext"], [20, 2, 1, "", "exitContext"], [20, 2, 1, "", "initialize"], [20, 2, 1, "", "isClassReferenceNil"], [20, 2, 1, "", "isElementInitialized"], [20, 3, 1, "", "newIndices"], [20, 2, 1, "", "postinit"]], "ChapelHashing._array": [[22, 2, 1, "", "hash"]], "ChapelHashing": [[22, 4, 1, "", "_gen_key"], [22, 4, 1, "", "chpl__defaultHashCombine"], [22, 4, 1, "", "chpl__defaultHashWrapper"], [22, 4, 1, "", "chpl__defaultHashWrapperInner"], [22, 2, 1, "", "proc"]], "ChapelHashing.bool": [[22, 2, 1, "", "hash"]], "ChapelHashing.chpl_taskID_t": [[22, 2, 1, "", "hash"]], "ChapelHashing.complex": [[22, 2, 1, "", "hash"]], "ChapelHashing.enum": [[22, 2, 1, "", "hash"]], "ChapelHashing.imag": [[22, 2, 1, "", "hash"]], "ChapelHashing.int": [[22, 2, 1, "", "hash"]], "ChapelHashing.locale": [[22, 2, 1, "", "hash"]], "ChapelHashing.range": [[22, 2, 1, "", "hash"]], "ChapelHashing.real": [[22, 2, 1, "", "hash"]], "ChapelHashing.uint": [[22, 2, 1, "", "hash"]], "ChapelHashtable": [[23, 10, 1, "", "_allSlots"], [23, 6, 1, "", "chpl_TableEntry"], [23, 8, 1, "", "chpl__hash_status"], [23, 6, 1, "", "chpl__hashtable"], [23, 0, 1, "", "chpl__rehashHelpers"]], "ChapelHashtable.chpl_TableEntry": [[23, 2, 1, "", "isFull"], [23, 1, 1, "", "key"], [23, 1, 1, "", "status"], [23, 1, 1, "", "val"]], "ChapelHashtable.chpl__hash_status": [[23, 9, 1, "", "deleted"], [23, 9, 1, "", "empty"], [23, 9, 1, "", "full"]], "ChapelHashtable.chpl__hashtable": [[23, 2, 1, "", "_findPowerOf2"], [23, 2, 1, "", "_findSlot"], [23, 3, 1, "", "_lookForSlots"], [23, 3, 1, "", "allSlots"], [23, 2, 1, "", "allocateData"], [23, 2, 1, "", "allocateTable"], [23, 2, 1, "", "clearSlot"], [23, 2, 1, "", "deinit"], [23, 2, 1, "", "fillSlot"], [23, 2, 1, "", "findAvailableSlot"], [23, 2, 1, "", "findFullSlot"], [23, 2, 1, "", "init"], [23, 2, 1, "", "isSlotFull"], [23, 1, 1, "", "keyType"], [23, 2, 1, "", "keysMatch"], [23, 2, 1, "", "maybeShrinkAfterRemove"], [23, 1, 1, "", "postponeResize"], [23, 2, 1, "", "rehash"], [23, 1, 1, "", "rehashHelpers"], [23, 2, 1, "", "requestCapacity"], [23, 2, 1, "", "resize"], [23, 1, 1, "", "resizeThreshold"], [23, 1, 1, "", "startingSize"], [23, 1, 1, "", "table"], [23, 1, 1, "", "tableNumDeletedSlots"], [23, 1, 1, "", "tableNumFullSlots"], [23, 1, 1, "", "tableSize"], [23, 1, 1, "", "valType"]], "ChapelHashtable.chpl__rehashHelpers": [[23, 2, 1, "", "finishRehash"], [23, 2, 1, "", "moveElementDuringRehash"], [23, 2, 1, "", "startRehash"]], "ChapelIOStringifyHelper": [[25, 4, 1, "", "_can_stringify_direct"], [25, 4, 1, "", "stringify_simple"]], "ChapelIteratorSupport": [[26, 4, 1, "", "="], [26, 4, 1, "", "_freeIterator"], [26, 4, 1, "", "_getIterator"], [26, 4, 1, "", "_getIteratorZip"], [26, 4, 1, "", "_toFastFollower"], [26, 4, 1, "", "_toFollower"], [26, 4, 1, "", "_toFollowerZip"], [26, 4, 1, "", "_toFollowerZipInternal"], [26, 4, 1, "", "_toLeader"], [26, 4, 1, "", "_toLeaderZip"], [26, 4, 1, "", "_toStandalone"], [26, 4, 1, "", "chpl__canHaveFastFollowers"], [26, 4, 1, "", "chpl__canLeadFastFollowers"], [26, 4, 1, "", "chpl__dynamicFastFollowCheck"], [26, 4, 1, "", "chpl__staticFastFollowCheck"], [26, 4, 1, "", "chpl_buildStandInRTT"], [26, 4, 1, "", "chpl_computeIteratorShape"], [26, 4, 1, "", "chpl_elemTypeForReducingIterables"], [26, 4, 1, "", "chpl_iteratorFromForExpr"], [26, 4, 1, "", "chpl_iteratorFromForeachExpr"], [26, 4, 1, "", "chpl_iteratorHasDomainShape"], [26, 4, 1, "", "chpl_iteratorHasRangeShape"], [26, 4, 1, "", "chpl_iteratorHasShape"], [26, 4, 1, "", "chpl_iteratorShapeStaticTypeOrNothing"], [26, 10, 1, "", "chpl_trivialLeader"], [26, 4, 1, "", "iteratorIndex"], [26, 4, 1, "", "iteratorIndexType"], [26, 4, 1, "", "iteratorIndexTypeZip"], [26, 4, 1, "", "iteratorToArrayElementType"], [26, 4, 1, "", "singleRefIter"], [26, 4, 1, "", "singleValIter"], [26, 4, 1, "", "thunkToReturnType"]], "ChapelLocale": [[27, 0, 1, "", "AbstractLocaleModel"], [27, 0, 1, "", "AbstractRootLocale"], [27, 0, 1, "", "BaseLocale"], [27, 0, 1, "", "DummyLocale"], [27, 6, 1, "", "_locale"], [27, 5, 1, "", "c_sublocid_all"], [27, 5, 1, "", "c_sublocid_any"], [27, 5, 1, "", "c_sublocid_none"], [27, 4, 1, "", "chpl_defaultLocaleInitPrivate"], [27, 4, 1, "", "chpl_getLocaleID"], [27, 4, 1, "", "chpl_getSingletonLocaleArray"], [27, 4, 1, "", "chpl_init_rootLocale"], [27, 4, 1, "", "chpl_isActualSublocID"], [27, 4, 1, "", "chpl_localeID_to_locale"], [27, 7, 1, "", "chpl_nodeID_t"], [27, 4, 1, "", "chpl_rootLocaleInitPrivate"], [27, 4, 1, "", "chpl_singletonCurrentLocaleInitPrivate"], [27, 4, 1, "", "chpl_singletonCurrentLocaleInitPrivateSublocs"], [27, 7, 1, "", "chpl_sublocID_t"], [27, 4, 1, "", "chpl_taskRunningCntDec"], [27, 4, 1, "", "chpl_taskRunningCntInc"], [27, 4, 1, "", "chpl_taskRunningCntReset"], [27, 4, 1, "", "chpl_task_getRequestedSubloc"], [27, 5, 1, "", "defaultLocale"], [27, 4, 1, "", "deinit"], [27, 5, 1, "", "dummyLocale"], [27, 4, 1, "", "here"], [27, 4, 1, "", "here_id"], [27, 8, 1, "", "localeKind"], [27, 5, 1, "", "nilLocale"], [27, 5, 1, "", "origRootLocale"], [27, 5, 1, "", "replicateRootLocale"], [27, 5, 1, "", "rootLocale"]], "ChapelLocale.AbstractLocaleModel": [[27, 1, 1, "", "chpl_singletonThisLocaleArray"], [27, 2, 1, "", "init"]], "ChapelLocale.AbstractRootLocale": [[27, 3, 1, "", "chpl_initOnLocales"], [27, 2, 1, "", "getDefaultLocaleArray"], [27, 2, 1, "", "getDefaultLocaleSpace"], [27, 2, 1, "", "init"], [27, 2, 1, "", "localeIDtoLocale"]], "ChapelLocale.BaseLocale": [[27, 2, 1, "", "_getChild"], [27, 2, 1, "", "_getChildCount"], [27, 2, 1, "", "addChild"], [27, 2, 1, "", "chpl_id"], [27, 2, 1, "", "chpl_localeid"], [27, 2, 1, "", "chpl_name"], [27, 2, 1, "", "gpus"], [27, 2, 1, "", "gpusImpl"], [27, 2, 1, "", "hostname"], [27, 2, 1, "", "id"], [27, 2, 1, "", "init"], [27, 2, 1, "", "isGpu"], [27, 2, 1, "", "localeid"], [27, 1, 1, "", "maxTaskPar"], [27, 1, 1, "", "nPUsLogAcc"], [27, 1, 1, "", "nPUsLogAll"], [27, 1, 1, "", "nPUsPhysAcc"], [27, 1, 1, "", "nPUsPhysAll"], [27, 2, 1, "", "name"], [27, 2, 1, "", "numPUs"], [27, 1, 1, "", "parent"], [27, 2, 1, "", "runningTaskCnt"], [27, 2, 1, "", "runningTaskCntAdd"], [27, 2, 1, "", "runningTaskCntSet"], [27, 2, 1, "", "runningTaskCntSub"], [27, 1, 1, "", "runningTaskCounter"], [27, 2, 1, "", "serialize"]], "ChapelLocale.DummyLocale": [[27, 2, 1, "", "_getChild"], [27, 2, 1, "", "_getChildCount"], [27, 2, 1, "", "addChild"], [27, 2, 1, "", "chpl_id"], [27, 2, 1, "", "chpl_localeid"], [27, 2, 1, "", "chpl_name"], [27, 2, 1, "", "init"]], "ChapelLocale._locale": [[27, 2, 1, "", "_getChildCount"], [27, 1, 1, "", "_instance"], [27, 2, 1, "", "_value"], [27, 2, 1, "", "chpl_id"], [27, 2, 1, "", "chpl_localeid"], [27, 2, 1, "", "chpl_name"], [27, 2, 1, "", "deinit"], [27, 2, 1, "", "init"], [27, 2, 1, "", "init="], [27, 2, 1, "", "localeid"]], "ChapelLocale.locale": [[27, 2, 1, "", "="], [27, 2, 1, "", "hostname"], [27, 2, 1, "", "id"], [27, 2, 1, "", "maxTaskPar"], [27, 2, 1, "", "name"], [27, 2, 1, "", "numPUs"], [27, 2, 1, "", "runningTasks"]], "ChapelLocale.localeKind": [[27, 9, 1, "", "any"], [27, 9, 1, "", "default"], [27, 9, 1, "", "dummy"], [27, 9, 1, "", "nilLocale"], [27, 9, 1, "", "regular"]], "ChapelLocks": [[28, 6, 1, "", "chpl_LocalSpinlock"]], "ChapelLocks.chpl_LocalSpinlock": [[28, 2, 1, "", "init"], [28, 2, 1, "", "init="], [28, 1, 1, "", "l"], [28, 2, 1, "", "lock"], [28, 2, 1, "", "unlock"]], "ChapelNumLocales": [[29, 4, 1, "", "chpl_comm_default_num_locales"], [29, 5, 1, "", "numLocales"]], "ChapelPrivatization": [[30, 4, 1, "", "chpl_getPrivatizedCopy"], [30, 6, 1, "", "chpl_privateObject_t"], [30, 5, 1, "", "chpl_privateObjects"]], "ChapelPrivatization.chpl_privateObject_t": [[30, 1, 1, "", "obj"]], "ChapelRange": [[31, 4, 1, "", "!="], [31, 4, 1, "", "+"], [31, 4, 1, "", "+="], [31, 4, 1, "", "-"], [31, 4, 1, "", "-="], [31, 4, 1, "", ":"], [31, 4, 1, "ChapelRange.<", "<"], [31, 4, 1, "ChapelRange.<=", "<="], [31, 4, 1, "", "="], [31, 4, 1, "", "=="], [31, 4, 1, "ChapelRange.>", ">"], [31, 4, 1, "ChapelRange.>=", ">="], [31, 6, 1, "", "_range"], [31, 4, 1, "", "align"], [31, 8, 1, "", "boundKind"], [31, 4, 1, "", "by"], [31, 4, 1, "", "chpl__add"], [31, 4, 1, "", "chpl__addRangeStrides"], [31, 4, 1, "", "chpl__diffMod"], [31, 4, 1, "", "chpl__extendedEuclid"], [31, 4, 1, "", "chpl__extendedEuclidHelper"], [31, 4, 1, "", "chpl__idxToInt"], [31, 4, 1, "", "chpl__idxTypeToIntIdxType"], [31, 4, 1, "", "chpl__intToIdx"], [31, 4, 1, "", "chpl__mod"], [31, 4, 1, "", "chpl__nudgeHighBound"], [31, 4, 1, "", "chpl__nudgeLowBound"], [31, 4, 1, "", "chpl__singleValIdxType"], [31, 4, 1, "", "chpl_assignStrideIsSafe"], [31, 4, 1, "", "chpl_assignStrideIsUnsafe"], [31, 4, 1, "", "chpl_bounded_count_for_param_loop_high"], [31, 4, 1, "", "chpl_bounded_count_for_param_loop_low"], [31, 4, 1, "", "chpl_build_bounded_range"], [31, 4, 1, "", "chpl_build_high_bounded_range"], [31, 4, 1, "", "chpl_build_low_bounded_range"], [31, 4, 1, "", "chpl_build_unbounded_range"], [31, 4, 1, "", "chpl_by_help"], [31, 4, 1, "", "chpl_castIsSafe"], [31, 4, 1, "", "chpl_checkIfRangeIterWillOverflow"], [31, 4, 1, "", "chpl_check_step_integral"], [31, 4, 1, "", "chpl_compute_count_param_loop"], [31, 4, 1, "", "chpl_compute_high_param_loop_bound"], [31, 4, 1, "", "chpl_compute_low_param_loop_bound"], [31, 4, 1, "", "chpl_count_help"], [31, 10, 1, "", "chpl_direct_counted_range_iter"], [31, 10, 1, "", "chpl_direct_counted_range_iter_helper"], [31, 10, 1, "", "chpl_direct_param_stride_range_iter"], [31, 10, 1, "", "chpl_direct_pos_stride_range_iter"], [31, 10, 1, "", "chpl_direct_range_iter"], [31, 10, 1, "", "chpl_direct_strided_range_iter"], [31, 4, 1, "", "chpl_high_bound_count_for_param_loop"], [31, 4, 1, "", "chpl_ident"], [31, 4, 1, "", "chpl_idxCastIsSafe"], [31, 4, 1, "", "chpl_idxCastThrows"], [31, 4, 1, "", "chpl_idxTypeSizeChange"], [31, 4, 1, "", "chpl_isValidRangeIdxType"], [31, 4, 1, "", "chpl_low_bound_count_for_param_loop"], [31, 4, 1, "", "chpl_need_to_check_step"], [31, 4, 1, "", "chpl_range_check_stride"], [31, 4, 1, "", "chpl_strideProduct"], [31, 4, 1, "", "chpl_strideUnion"], [31, 4, 1, "", "chpl_strideUnionRC"], [31, 4, 1, "", "chpl_throwingCast"], [31, 4, 1, "", "chpl_tryCastIsSafe"], [31, 5, 1, "", "debugChapelRange"], [31, 5, 1, "", "newRangeLiteralType"], [31, 5, 1, "", "newSliceRule"], [31, 8, 1, "", "strideKind"], [31, 5, 1, "", "useOptimizedRangeIterators"]], "ChapelRange._range": [[31, 1, 1, "", "_alignment"], [31, 1, 1, "", "_high"], [31, 1, 1, "", "_low"], [31, 1, 1, "", "_stride"], [31, 1, 1, "", "bounds"], [31, 1, 1, "", "idxType"], [31, 1, 1, "", "strides"]], "ChapelRange.boundKind": [[31, 9, 1, "", "both"], [31, 9, 1, "", "high"], [31, 9, 1, "", "low"], [31, 9, 1, "", "neither"]], "ChapelRange.range": [[31, 2, 1, "", "alignHigh"], [31, 2, 1, "", "alignLow"], [31, 2, 1, "", "alignedHighAsInt"], [31, 2, 1, "", "alignedLowAsInt"], [31, 2, 1, "", "alignment"], [31, 2, 1, "", "boundingBox"], [31, 2, 1, "", "checkIfIterWillOverflow"], [31, 2, 1, "", "chpl__promotionType"], [31, 2, 1, "", "chpl__unTranslate"], [31, 2, 1, "", "chpl_alignedHighAsIntForIter"], [31, 2, 1, "", "chpl_alignedLowAsIntForIter"], [31, 2, 1, "", "chpl_boundsCheck"], [31, 2, 1, "", "chpl_checkStrides"], [31, 2, 1, "", "chpl_firstAsIntForIter"], [31, 2, 1, "", "chpl_intToIdx"], [31, 2, 1, "", "chpl_integralIdxType"], [31, 2, 1, "", "chpl_isNaturallyAligned"], [31, 2, 1, "", "chpl_lastAsIntForIter"], [31, 2, 1, "", "chpl_setFields"], [31, 2, 1, "", "chpl_sizeAsForIter"], [31, 2, 1, "", "contains"], [31, 2, 1, "", "createWithSingleElement"], [31, 2, 1, "", "displayRepresentation"], [31, 2, 1, "", "expand"], [31, 2, 1, "", "exterior"], [31, 2, 1, "", "first"], [31, 2, 1, "", "firstAsInt"], [31, 3, 1, "", "generalIterator"], [31, 2, 1, "", "hasFirst"], [31, 2, 1, "", "hasFirstForIter"], [31, 2, 1, "", "hasHighBound"], [31, 2, 1, "", "hasLast"], [31, 2, 1, "", "hasLastForIter"], [31, 2, 1, "", "hasLowBound"], [31, 2, 1, "", "hasNegativeStride"], [31, 2, 1, "", "hasParamAligned"], [31, 2, 1, "", "hasParamAlignment"], [31, 2, 1, "", "hasParamAlignmentField"], [31, 2, 1, "", "hasParamStride"], [31, 2, 1, "", "hasParamStrideAltvalAld"], [31, 2, 1, "", "hasPosNegUnitStride"], [31, 2, 1, "", "hasPositiveStride"], [31, 2, 1, "", "hasUnitStride"], [31, 2, 1, "", "high"], [31, 2, 1, "", "highBound"], [31, 2, 1, "", "indexOrder"], [31, 2, 1, "", "init"], [31, 2, 1, "", "init="], [31, 2, 1, "", "interior"], [31, 2, 1, "", "isAligned"], [31, 2, 1, "", "isEmpty"], [31, 2, 1, "", "last"], [31, 2, 1, "", "lastAsInt"], [31, 2, 1, "", "low"], [31, 2, 1, "", "lowBound"], [31, 2, 1, "", "offset"], [31, 2, 1, "", "orderToIndex"], [31, 2, 1, "", "size"], [31, 2, 1, "", "sizeAs"], [31, 2, 1, "", "sizeAsHelp"], [31, 2, 1, "", "strType"], [31, 2, 1, "", "stride"], [31, 3, 1, "", "these"], [31, 2, 1, "", "translate"], [31, 2, 1, "", "tryCast"]], "ChapelRange.strideKind": [[31, 9, 1, "", "any"], [31, 2, 1, "", "defaultStride"], [31, 2, 1, "", "hasSign"], [31, 2, 1, "", "isAny"], [31, 2, 1, "", "isNegOne"], [31, 2, 1, "", "isNegative"], [31, 2, 1, "", "isOne"], [31, 2, 1, "", "isPosNegOne"], [31, 2, 1, "", "isPositive"], [31, 9, 1, "", "negOne"], [31, 9, 1, "", "negative"], [31, 9, 1, "", "one"], [31, 9, 1, "", "positive"]], "ChapelReduce": [[32, 0, 1, "", "BitwiseAndReduceScanOp"], [32, 0, 1, "", "BitwiseOrReduceScanOp"], [32, 0, 1, "", "BitwiseXorReduceScanOp"], [32, 0, 1, "", "LogicalAndReduceScanOp"], [32, 0, 1, "", "LogicalOrReduceScanOp"], [32, 0, 1, "", "MaxReduceScanOp"], [32, 0, 1, "", "MinReduceScanOp"], [32, 0, 1, "", "ProductReduceScanOp"], [32, 0, 1, "", "ReduceScanOp"], [32, 0, 1, "", "SumReduceScanOp"], [32, 4, 1, "", "_maxloc_id"], [32, 4, 1, "", "_minloc_id"], [32, 4, 1, "", "chpl__accumgen"], [32, 4, 1, "", "chpl__cleanupLocalOp"], [32, 4, 1, "", "chpl__reduceCombine"], [32, 4, 1, "", "chpl__scanIterator"], [32, 4, 1, "", "chpl__scanIteratorZip"], [32, 4, 1, "", "chpl__scanStateResTypesMatch"], [32, 4, 1, "", "chpl__sumType"], [32, 4, 1, "", "chpl_sumTypeIsSame"], [32, 0, 1, "", "maxloc"], [32, 0, 1, "", "minloc"], [32, 0, 1, "", "minmax"]], "ChapelReduce.BitwiseAndReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.BitwiseOrReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.BitwiseXorReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.LogicalAndReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.LogicalOrReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.MaxReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.MinReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.ProductReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.ReduceScanOp": [[32, 1, 1, "", "l"]], "ChapelReduce.SumReduceScanOp": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.maxloc": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.minloc": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelReduce.minmax": [[32, 2, 1, "", "accumulate"], [32, 2, 1, "", "accumulateOntoState"], [32, 2, 1, "", "clone"], [32, 2, 1, "", "combine"], [32, 1, 1, "", "eltType"], [32, 2, 1, "", "generate"], [32, 2, 1, "", "identity"], [32, 1, 1, "", "value"]], "ChapelRemoteVars": [[33, 4, 1, "", "__defaultValueForType"], [33, 0, 1, "", "_remoteVarContainer"], [33, 6, 1, "", "_remoteVarWrapper"], [33, 4, 1, "", "chpl__buildRemoteWrapper"]], "ChapelRemoteVars._remoteVarContainer": [[33, 1, 1, "", "containedValue"]], "ChapelRemoteVars._remoteVarWrapper": [[33, 1, 1, "", "eltType"], [33, 2, 1, "", "get"], [33, 2, 1, "", "init"], [33, 1, 1, "", "tmp"]], "ChapelSerializedBroadcast": [[34, 4, 1, "", "chpl__broadcastGlobal"], [34, 4, 1, "", "chpl__destroyBroadcastedGlobal"], [34, 5, 1, "", "chpl__enableSerializedGlobals"], [34, 4, 1, "", "chpl_get_global_serialize_table"]], "ChapelShortArrayTransfer": [[35, 4, 1, "", "chpl__dynamicCheckShortArrayTransfer"], [35, 4, 1, "", "chpl__staticCheckShortArrayTransfer"], [35, 5, 1, "", "debugShortArrayTransfer"], [35, 5, 1, "", "disableShortArrayTransfer"], [35, 5, 1, "", "shortArrayTransferThreshold"]], "ChapelStaticVars": [[37, 6, 1, "", "_staticWrapper"], [37, 0, 1, "", "_staticWrapperContainer"], [37, 4, 1, "", "chpl__executeStaticWrapperCleanupEverywhere"], [37, 4, 1, "", "chpl__functionStaticVariableWrapperType"], [37, 8, 1, "", "sharingKind"]], "ChapelStaticVars._staticWrapper": [[37, 2, 1, "", "callerShouldComputeValue"], [37, 1, 1, "", "container"], [37, 2, 1, "", "getValue"], [37, 2, 1, "", "init"], [37, 1, 1, "", "inited"], [37, 2, 1, "", "reset"], [37, 2, 1, "", "setValue"], [37, 1, 1, "", "valueType"]], "ChapelStaticVars._staticWrapperContainer": [[37, 1, 1, "", "value"]], "ChapelStaticVars.sharingKind": [[37, 9, 1, "", "computeOrRetrieve"], [37, 9, 1, "", "computePerLocale"]], "ChapelSyncvar": [[38, 4, 1, "", "%="], [38, 4, 1, "ChapelSyncvar.&=", "&="], [38, 4, 1, "", "**="], [38, 4, 1, "", "*="], [38, 4, 1, "", "+="], [38, 4, 1, "", "-="], [38, 4, 1, "", "/="], [38, 4, 1, "", ":"], [38, 4, 1, "ChapelSyncvar.<<=", "<<="], [38, 4, 1, "ChapelSyncvar.<=>", "<=>"], [38, 4, 1, "", "="], [38, 4, 1, "ChapelSyncvar.>>=", ">>="], [38, 4, 1, "", "^="], [38, 0, 1, "", "_qthreads_synccls"], [38, 0, 1, "", "_singlecls"], [38, 6, 1, "", "_singlevar"], [38, 0, 1, "", "_synccls"], [38, 6, 1, "", "_syncvar"], [38, 4, 1, "", "chpl__autoCopy"], [38, 4, 1, "", "chpl__autoDestroy"], [38, 4, 1, "", "chpl__compilerGeneratedAssignSyncSingle"], [38, 4, 1, "", "chpl__compilerGeneratedCopySyncSingle"], [38, 4, 1, "", "chpl__initCopy"], [38, 4, 1, "", "chpl__maybeAutoDestroyed"], [38, 4, 1, "", "chpl__readXX"], [38, 5, 1, "", "useNativeSyncVar"], [38, 4, 1, "", "|="]], "ChapelSyncvar._qthreads_synccls": [[38, 1, 1, "", "alignedValue"], [38, 2, 1, "", "deinit"], [38, 2, 1, "", "init"], [38, 2, 1, "", "isFull"], [38, 2, 1, "", "readFE"], [38, 2, 1, "", "readFF"], [38, 2, 1, "", "readXX"], [38, 2, 1, "", "reset"], [38, 1, 1, "", "valType"], [38, 2, 1, "", "writeEF"], [38, 2, 1, "", "writeFF"], [38, 2, 1, "", "writeXF"]], "ChapelSyncvar._singlecls": [[38, 2, 1, "", "deinit"], [38, 2, 1, "", "init"], [38, 2, 1, "", "isFull"], [38, 2, 1, "", "readFF"], [38, 2, 1, "", "readXX"], [38, 1, 1, "", "singleAux"], [38, 1, 1, "", "valType"], [38, 1, 1, "", "value"], [38, 2, 1, "", "writeEF"]], "ChapelSyncvar._singlevar": [[38, 2, 1, "", "deinit"], [38, 2, 1, "", "deserialize"], [38, 2, 1, "", "deserializeFrom"], [38, 2, 1, "", "init"], [38, 2, 1, "", "init="], [38, 2, 1, "", "isFull"], [38, 1, 1, "", "isOwned"], [38, 2, 1, "", "readFF"], [38, 2, 1, "", "readXX"], [38, 2, 1, "", "serialize"], [38, 1, 1, "", "valType"], [38, 1, 1, "", "wrapped"], [38, 2, 1, "", "writeEF"]], "ChapelSyncvar._synccls": [[38, 2, 1, "", "deinit"], [38, 2, 1, "", "init"], [38, 2, 1, "", "isFull"], [38, 2, 1, "", "readFE"], [38, 2, 1, "", "reset"], [38, 1, 1, "", "syncAux"], [38, 1, 1, "", "valType"], [38, 1, 1, "", "value"], [38, 2, 1, "", "writeEF"], [38, 2, 1, "", "writeFF"], [38, 2, 1, "", "writeXF"]], "ChapelSyncvar._syncvar": [[38, 2, 1, "", "deinit"], [38, 2, 1, "", "deserialize"], [38, 2, 1, "", "deserializeFrom"], [38, 2, 1, "", "init"], [38, 2, 1, "", "init="], [38, 2, 1, "", "isFull"], [38, 1, 1, "", "isOwned"], [38, 2, 1, "", "readFE"], [38, 2, 1, "", "readFF"], [38, 2, 1, "", "readXX"], [38, 2, 1, "", "reset"], [38, 2, 1, "", "serialize"], [38, 1, 1, "", "valType"], [38, 1, 1, "", "wrapped"], [38, 2, 1, "", "writeEF"], [38, 2, 1, "", "writeFF"], [38, 2, 1, "", "writeXF"]], "ChapelTaskData": [[39, 4, 1, "", "chpl_task_data_getCommDiagsTemporarilyDisabled"], [39, 4, 1, "", "chpl_task_data_getDynamicEndCount"], [39, 4, 1, "", "chpl_task_data_getNextCoStmtSerial"], [39, 4, 1, "", "chpl_task_data_getSerial"], [39, 4, 1, "", "chpl_task_data_setCommDiagsTemporarilyDisabled"], [39, 4, 1, "", "chpl_task_data_setDynamicEndCount"], [39, 4, 1, "", "chpl_task_data_setNextCoStmtSerial"], [39, 4, 1, "", "chpl_task_data_setSerial"], [39, 4, 1, "", "chpl_task_getCommDiagsTemporarilyDisabled"], [39, 4, 1, "", "chpl_task_getDynamicEndCount"], [39, 4, 1, "", "chpl_task_getSerial"], [39, 4, 1, "", "chpl_task_setCommDiagsTemporarilyDisabled"], [39, 4, 1, "", "chpl_task_setDynamicEndCount"], [39, 4, 1, "", "chpl_task_setSerial"]], "ChapelTaskDataHelp": [[40, 4, 1, "", "chpl_save_task_error"], [40, 4, 1, "", "chpl_save_task_error_owned"], [40, 4, 1, "", "chpl_task_data_setup"], [40, 4, 1, "", "chpl_task_getInfoChapel"], [40, 4, 1, "", "chpl_task_getInfoChapelInBundle"], [40, 7, 1, "", "chpl_task_infoChapel_t"]], "ChapelTaskID": [[41, 4, 1, "", "!="], [41, 4, 1, "", ":"], [41, 4, 1, "", "="], [41, 4, 1, "", "=="]], "ChapelThreads": [[42, 4, 1, "", "chpl_task_getenvNumThreadsPerLocale"], [42, 5, 1, "", "numThreadsPerLocale"]], "ChapelTuple": [[43, 4, 1, "", "!"], [43, 4, 1, "", "!="], [43, 4, 1, "", "%"], [43, 4, 1, "ChapelTuple.&", "&"], [43, 4, 1, "", "*"], [43, 4, 1, "", "**"], [43, 4, 1, "", "+"], [43, 4, 1, "", "-"], [43, 4, 1, "", "/"], [43, 4, 1, "", ":"], [43, 4, 1, "ChapelTuple.<", "<"], [43, 4, 1, "ChapelTuple.<<", "<<"], [43, 4, 1, "ChapelTuple.<=", "<="], [43, 4, 1, "", "="], [43, 4, 1, "", "=="], [43, 4, 1, "ChapelTuple.>", ">"], [43, 4, 1, "ChapelTuple.>=", ">="], [43, 4, 1, "ChapelTuple.>>", ">>"], [43, 5, 1, "", "CHPL_WARN_TUPLE_ITERATION"], [43, 4, 1, "", "^"], [43, 4, 1, "", "_build_star_tuple_noref"], [43, 4, 1, "", "_build_tuple"], [43, 4, 1, "", "_build_tuple_always_allow_ref"], [43, 4, 1, "", "_build_tuple_noref"], [43, 4, 1, "", "_check_tuple_var_decl"], [43, 6, 1, "", "_tuple"], [43, 4, 1, "", "chpl_TwoHomogTuples"], [43, 4, 1, "", "chpl__init_tuple"], [43, 4, 1, "", "chpl__tupleRest"], [43, 4, 1, "", "chpl__tuplify"], [43, 4, 1, "", "chpl__unref"], [43, 4, 1, "", "max"], [43, 4, 1, "", "min"], [43, 4, 1, "", "|"], [43, 4, 1, "", "~"]], "ChapelTuple._tuple": [[43, 2, 1, "", "indices"], [43, 1, 1, "", "size"], [43, 3, 1, "", "these"], [43, 2, 1, "", "this"]], "ChapelUtil": [[44, 4, 1, "", "_command_line_cast"], [44, 4, 1, "", "allocate_string_literals_buf"], [44, 4, 1, "", "chpl_addModule"], [44, 4, 1, "", "chpl_convert_args"], [44, 4, 1, "", "chpl_deinitModules"], [44, 4, 1, "", "chpl_get_mli_connection"], [44, 6, 1, "", "chpl_main_argument"], [44, 4, 1, "", "chpl_rt_postUserCodeHook"], [44, 4, 1, "", "chpl_rt_preUserCodeHook"], [44, 4, 1, "", "deallocate_string_literals_buf"], [44, 5, 1, "", "printModuleDeinitOrder"], [44, 4, 1, "", "safeAdd"], [44, 4, 1, "", "safeMul"], [44, 4, 1, "", "safeSub"]], "ChapelUtil.chpl_main_argument": [[44, 1, 1, "", "argc"], [44, 1, 1, "", "return_value"]], "DefaultAssociative": [[45, 0, 1, "", "DefaultAssociativeArr"], [45, 0, 1, "", "DefaultAssociativeDom"], [45, 0, 1, "", "DefaultAssociativeDomRehashHelper"], [45, 4, 1, "", "chpl_serialReadWriteAssociativeHelper"], [45, 5, 1, "", "debugAssocDataPar"], [45, 5, 1, "", "debugDefaultAssoc"], [45, 5, 1, "", "defaultAssociativeSupportsAutoLocalAccess"]], "DefaultAssociative.DefaultAssociativeArr": [[45, 2, 1, "", "_defaultInitSlot"], [45, 2, 1, "", "_deinitElement"], [45, 2, 1, "", "_deinitSlot"], [45, 2, 1, "", "_doDefaultInitSlot"], [45, 2, 1, "", "_elementNeedsDeinit"], [45, 2, 1, "", "_finishRehash"], [45, 2, 1, "", "_moveElementDuringRehash"], [45, 2, 1, "", "_startRehash"], [45, 1, 1, "", "data"], [45, 1, 1, "", "dataSize"], [45, 2, 1, "", "deinit"], [45, 1, 1, "", "dom"], [45, 2, 1, "", "dsiAccess"], [45, 2, 1, "", "dsiDestroyArr"], [45, 2, 1, "", "dsiElementDeinitializationComplete"], [45, 2, 1, "", "dsiElementInitializationComplete"], [45, 2, 1, "", "dsiGetBaseDom"], [45, 2, 1, "", "dsiHasSingleLocalSubdomain"], [45, 2, 1, "", "dsiLocalAccess"], [45, 2, 1, "", "dsiLocalSubdomain"], [45, 2, 1, "", "dsiSerialRead"], [45, 2, 1, "", "dsiSerialReadWrite"], [45, 2, 1, "", "dsiSerialWrite"], [45, 3, 1, "", "dsiSorted"], [45, 2, 1, "", "dsiTargetLocales"], [45, 1, 1, "", "eltsNeedDeinit"], [45, 1, 1, "", "idxType"], [45, 2, 1, "", "init"], [45, 1, 1, "", "parSafeDom"], [45, 2, 1, "", "rank"], [45, 2, 1, "", "readChapelStyleAssocArray"], [45, 3, 1, "", "these"], [45, 1, 1, "", "tmpData"]], "DefaultAssociative.DefaultAssociativeDom": [[45, 2, 1, "", "_add"], [45, 3, 1, "", "_fullSlots"], [45, 2, 1, "", "_isSlotFull"], [45, 2, 1, "", "deinit"], [45, 1, 1, "", "dist"], [45, 2, 1, "", "dsiAdd"], [45, 2, 1, "", "dsiAssignDomain"], [45, 2, 1, "", "dsiBuildArray"], [45, 2, 1, "", "dsiClear"], [45, 2, 1, "", "dsiHasSingleLocalSubdomain"], [45, 3, 1, "", "dsiIndsIterSafeForRemoving"], [45, 2, 1, "", "dsiLinksDistribution"], [45, 2, 1, "", "dsiLocalSubdomain"], [45, 2, 1, "", "dsiMember"], [45, 2, 1, "", "dsiMyDist"], [45, 2, 1, "", "dsiNumIndices"], [45, 2, 1, "", "dsiRemove"], [45, 2, 1, "", "dsiRequestCapacity"], [45, 2, 1, "", "dsiSerialRead"], [45, 2, 1, "", "dsiSerialWrite"], [45, 3, 1, "", "dsiSorted"], [45, 2, 1, "", "dsiSupportsAutoLocalAccess"], [45, 2, 1, "", "dsiTargetLocales"], [45, 1, 1, "", "idxType"], [45, 2, 1, "", "init"], [45, 2, 1, "", "linksDistribution"], [45, 2, 1, "", "lockTable"], [45, 1, 1, "", "numEntries"], [45, 1, 1, "", "parSafe"], [45, 1, 1, "", "table"], [45, 1, 1, "", "tableLock"], [45, 3, 1, "", "these"], [45, 2, 1, "", "unlockTable"]], "DefaultAssociative.DefaultAssociativeDomRehashHelper": [[45, 1, 1, "", "dom"], [45, 2, 1, "", "finishRehash"], [45, 2, 1, "", "moveElementDuringRehash"], [45, 2, 1, "", "startRehash"]], "DefaultRectangular": [[46, 8, 1, "", "ArrayStorageOrder"], [46, 0, 1, "", "DefaultDist"], [46, 0, 1, "", "DefaultRectangularArr"], [46, 0, 1, "", "DefaultRectangularDom"], [46, 0, 1, "", "LocRADCache"], [46, 6, 1, "", "_remoteAccessData"], [46, 4, 1, "", "_supportsBulkElements"], [46, 4, 1, "", "_supportsSerializers"], [46, 4, 1, "", "chpl__intToIdx"], [46, 10, 1, "", "chpl__serialViewIter"], [46, 10, 1, "", "chpl__serialViewIter1D"], [46, 10, 1, "", "chpl__serialViewIterHelper"], [46, 4, 1, "", "chpl_defaultDistInitPrivate"], [46, 4, 1, "", "chpl_serialReadWriteRectangular"], [46, 4, 1, "", "chpl_serialReadWriteRectangularHelper"], [46, 5, 1, "", "dataParIgnoreRunningTasks"], [46, 5, 1, "", "dataParMinGranularity"], [46, 5, 1, "", "dataParTasksPerLocale"], [46, 5, 1, "", "debugDRScan"], [46, 5, 1, "", "debugDataPar"], [46, 5, 1, "", "debugDataParNuma"], [46, 5, 1, "", "debugDefaultDist"], [46, 5, 1, "", "debugDefaultDistBulkTransfer"], [46, 5, 1, "", "defaultDisableLazyRADOpt"], [46, 5, 1, "", "defaultDist"], [46, 5, 1, "", "defaultDoRADOpt"], [46, 5, 1, "", "defaultRectangularSupportsAutoLocalAccess"], [46, 5, 1, "", "defaultStorageOrder"], [46, 5, 1, "", "disableArrRealloc"], [46, 5, 1, "", "earlyShiftData"], [46, 5, 1, "", "enableParallelGetsInAssignment"], [46, 5, 1, "", "enableParallelPutsInAssignment"], [46, 5, 1, "", "parallelAssignThreshold"], [46, 4, 1, "", "polly_array_index"], [46, 5, 1, "", "reportInPlaceRealloc"], [46, 5, 1, "", "storageOrder"], [46, 5, 1, "", "usePollyArrayIndex"]], "DefaultRectangular.ArrayStorageOrder": [[46, 9, 1, "", "CMO"], [46, 9, 1, "", "RMO"]], "DefaultRectangular.DefaultDist": [[46, 2, 1, "", "dsiAssign"], [46, 2, 1, "", "dsiClone"], [46, 2, 1, "", "dsiEqualDMaps"], [46, 2, 1, "", "dsiIndexToLocale"], [46, 2, 1, "", "dsiIsLayout"], [46, 2, 1, "", "dsiNewAssociativeDom"], [46, 2, 1, "", "dsiNewRectangularDom"], [46, 2, 1, "", "dsiNewSparseDom"], [46, 2, 1, "", "dsiTargetLocales"], [46, 2, 1, "", "dsiTrackDomains"], [46, 2, 1, "", "singleton"], [46, 2, 1, "", "trackDomains"]], "DefaultRectangular.DefaultRectangularArr": [[46, 1, 1, "", "_borrowed"], [46, 2, 1, "", "adjustBlkOffStrForNewDomain"], [46, 1, 1, "", "blk"], [46, 1, 1, "", "callPostAlloc"], [46, 2, 1, "", "chpl__postScan"], [46, 2, 1, "", "chpl__preScan"], [46, 2, 1, "", "chpl_integralIdxType"], [46, 2, 1, "", "chpl_unsafeAssignIsClassElementNil"], [46, 2, 1, "", "computeFactoredOffs"], [46, 1, 1, "", "data"], [46, 1, 1, "", "deinitElts"], [46, 2, 1, "", "doiBulkTransferFromKnown"], [46, 2, 1, "", "doiBulkTransferToKnown"], [46, 2, 1, "", "doiCanBulkTransferRankChange"], [46, 2, 1, "", "doiOptimizedSwap"], [46, 2, 1, "", "doiScan"], [46, 1, 1, "", "dom"], [46, 2, 1, "", "dsiAccess"], [46, 2, 1, "", "dsiBoundsCheck"], [46, 2, 1, "", "dsiDestroyArr"], [46, 2, 1, "", "dsiDisplayRepresentation"], [46, 2, 1, "", "dsiElementDeinitializationComplete"], [46, 2, 1, "", "dsiElementInitializationComplete"], [46, 2, 1, "", "dsiGetBaseDom"], [46, 2, 1, "", "dsiGetRAD"], [46, 2, 1, "", "dsiHasSingleLocalSubdomain"], [46, 2, 1, "", "dsiIteratorYieldsLocalElements"], [46, 2, 1, "", "dsiLocalSlice"], [46, 2, 1, "", "dsiLocalSubdomain"], [46, 3, 1, "", "dsiLocalSubdomains"], [46, 2, 1, "", "dsiPostReallocate"], [46, 2, 1, "", "dsiReallocate"], [46, 2, 1, "", "dsiSerialRead"], [46, 2, 1, "", "dsiSerialReadWrite"], [46, 2, 1, "", "dsiSerialWrite"], [46, 2, 1, "", "dsiTargetLocales"], [46, 1, 1, "", "externArr"], [46, 1, 1, "", "externFreeFunc"], [46, 1, 1, "", "factoredOffs"], [46, 2, 1, "", "getDataIndex"], [46, 1, 1, "", "idxSignedType"], [46, 2, 1, "", "init"], [46, 2, 1, "", "initShiftedData"], [46, 2, 1, "", "isDataContiguous"], [46, 2, 1, "", "isDefaultRectangular"], [46, 1, 1, "", "off"], [46, 2, 1, "", "setupFieldsAndAllocate"], [46, 1, 1, "", "shiftedData"], [46, 1, 1, "", "sizesPerDim"], [46, 1, 1, "", "str"], [46, 2, 1, "", "theData"], [46, 3, 1, "", "these"]], "DefaultRectangular.DefaultRectangularDom": [[46, 6, 1, "", "_serialized_domain"], [46, 2, 1, "", "chpl__deserialize"], [46, 2, 1, "", "chpl__serialize"], [46, 2, 1, "", "chpl_intToIdx"], [46, 2, 1, "", "chpl_integralIdxType"], [46, 1, 1, "", "dist"], [46, 2, 1, "", "doiToString"], [46, 2, 1, "", "doiTryCreateArray"], [46, 2, 1, "", "dsiAlignedHigh"], [46, 2, 1, "", "dsiAlignedLow"], [46, 2, 1, "", "dsiAlignment"], [46, 2, 1, "", "dsiAssignDomain"], [46, 2, 1, "", "dsiBuildArray"], [46, 2, 1, "", "dsiBuildArrayWith"], [46, 2, 1, "", "dsiDim"], [46, 2, 1, "", "dsiDims"], [46, 2, 1, "", "dsiDisplayRepresentation"], [46, 2, 1, "", "dsiFirst"], [46, 2, 1, "", "dsiGetIndices"], [46, 2, 1, "", "dsiHasSingleLocalSubdomain"], [46, 2, 1, "", "dsiHigh"], [46, 2, 1, "", "dsiIndexOrder"], [46, 2, 1, "", "dsiLast"], [46, 2, 1, "", "dsiLinksDistribution"], [46, 2, 1, "", "dsiLocalSlice"], [46, 2, 1, "", "dsiLocalSubdomain"], [46, 3, 1, "", "dsiLocalSubdomains"], [46, 2, 1, "", "dsiLow"], [46, 2, 1, "", "dsiMember"], [46, 2, 1, "", "dsiMyDist"], [46, 2, 1, "", "dsiNumIndices"], [46, 2, 1, "", "dsiSerialRead"], [46, 2, 1, "", "dsiSerialReadWrite"], [46, 2, 1, "", "dsiSerialWrite"], [46, 2, 1, "", "dsiSetIndices"], [46, 2, 1, "", "dsiStride"], [46, 2, 1, "", "dsiSupportsAutoLocalAccess"], [46, 2, 1, "", "dsiTargetLocales"], [46, 2, 1, "", "init"], [46, 2, 1, "", "isDefaultRectangular"], [46, 2, 1, "", "linksDistribution"], [46, 2, 1, "", "parSafe"], [46, 1, 1, "", "ranges"], [46, 3, 1, "", "these"], [46, 3, 1, "", "these_help"]], "DefaultRectangular.DefaultRectangularDom._serialized_domain": [[46, 1, 1, "", "dims"], [46, 1, 1, "", "idxType"], [46, 1, 1, "", "isDefaultRectangular"], [46, 1, 1, "", "rank"], [46, 1, 1, "", "strides"]], "DefaultRectangular.LocRADCache": [[46, 1, 1, "", "RAD"], [46, 1, 1, "", "RADLocks"], [46, 1, 1, "", "eltType"], [46, 1, 1, "", "idxType"], [46, 2, 1, "", "init"], [46, 2, 1, "", "lockRAD"], [46, 1, 1, "", "rank"], [46, 1, 1, "", "strides"], [46, 1, 1, "", "targetLocDom"], [46, 2, 1, "", "unlockRAD"]], "DefaultRectangular._remoteAccessData": [[46, 1, 1, "", "blk"], [46, 1, 1, "", "blkChanged"], [46, 2, 1, "", "computeFactoredOffs"], [46, 1, 1, "", "data"], [46, 2, 1, "", "dataElem"], [46, 1, 1, "", "eltType"], [46, 1, 1, "", "factoredOffs"], [46, 2, 1, "", "getDataElem"], [46, 2, 1, "", "getDataIndex"], [46, 2, 1, "", "hasUnitStride"], [46, 1, 1, "", "idxType"], [46, 2, 1, "", "initDataFrom"], [46, 2, 1, "", "initShiftedData"], [46, 1, 1, "", "off"], [46, 1, 1, "", "origin"], [46, 1, 1, "", "rank"], [46, 1, 1, "", "shiftedData"], [46, 2, 1, "", "shiftedDataElem"], [46, 1, 1, "", "str"], [46, 2, 1, "", "strideAlignDown"], [46, 2, 1, "", "strideAlignUp"], [46, 1, 1, "", "strides"], [46, 2, 1, "", "theData"], [46, 2, 1, "", "toRankChange"], [46, 2, 1, "", "toReindex"], [46, 2, 1, "", "toSlice"]], "DefaultSparse": [[47, 0, 1, "", "DefaultSparseArr"], [47, 0, 1, "", "DefaultSparseDom"], [47, 5, 1, "", "debugDefaultSparse"], [47, 5, 1, "", "defaultSparseSupportsAutoLocalAccess"]], "DefaultSparse.DefaultSparseArr": [[47, 2, 1, "", "doiBulkTransferFromKnown"], [47, 2, 1, "", "doiBulkTransferToKnown"], [47, 2, 1, "", "dsiAccess"], [47, 2, 1, "", "dsiHasSingleLocalSubdomain"], [47, 2, 1, "", "dsiLocalSubdomain"], [47, 2, 1, "", "dsiSerialWrite"], [47, 2, 1, "", "dsiTargetLocales"], [47, 2, 1, "", "init"], [47, 3, 1, "", "these"]], "DefaultSparse.DefaultSparseDom": [[47, 1, 1, "", "_indices"], [47, 1, 1, "", "_nnz"], [47, 2, 1, "", "add_help"], [47, 2, 1, "", "bulkAdd_help"], [47, 3, 1, "", "dimIter"], [47, 1, 1, "", "dist"], [47, 2, 1, "", "dsiAdd"], [47, 2, 1, "", "dsiAssignDomain"], [47, 2, 1, "", "dsiBuildArray"], [47, 2, 1, "", "dsiClear"], [47, 2, 1, "", "dsiFirst"], [47, 2, 1, "", "dsiHasSingleLocalSubdomain"], [47, 3, 1, "", "dsiIndsIterSafeForRemoving"], [47, 2, 1, "", "dsiLast"], [47, 2, 1, "", "dsiLinksDistribution"], [47, 2, 1, "", "dsiLocalSubdomain"], [47, 2, 1, "", "dsiMember"], [47, 2, 1, "", "dsiMyDist"], [47, 2, 1, "", "dsiRemove"], [47, 2, 1, "", "dsiSerialWrite"], [47, 2, 1, "", "dsiSupportsAutoLocalAccess"], [47, 2, 1, "", "dsiTargetLocales"], [47, 2, 1, "", "find"], [47, 2, 1, "", "getNNZ"], [47, 2, 1, "", "init"], [47, 2, 1, "", "linksDistribution"], [47, 2, 1, "", "parSafe"], [47, 2, 1, "", "rem_help"], [47, 3, 1, "", "these"]], "ExportWrappers": [[48, 4, 1, "", "chpl__exportArg"], [48, 4, 1, "", "chpl__exportRet"], [48, 4, 1, "", "chpl__exportRetStringOrBytes"], [48, 7, 1, "", "chpl__exportTypeChplByteBuffer"], [48, 6, 1, "", "chpl_byte_buffer"], [48, 4, 1, "", "chpl_byte_buffer_free"], [48, 4, 1, "", "chpl_libraryModuleLevelCleanup"], [48, 4, 1, "", "chpl_libraryModuleLevelSetup"]], "ExportWrappers.chpl_byte_buffer": [[48, 1, 1, "", "data"], [48, 1, 1, "", "isOwned"], [48, 1, 1, "", "size"]], "ExternalArray": [[49, 4, 1, "", "chpl_call_free_func"], [49, 6, 1, "", "chpl_external_array"], [49, 4, 1, "", "chpl_free_external_array"], [49, 4, 1, "", "chpl_make_external_array"], [49, 4, 1, "", "chpl_make_external_array_ptr"], [49, 4, 1, "", "chpl_make_external_array_ptr_free"], [49, 6, 1, "", "chpl_opaque_array"], [49, 4, 1, "", "cleanupOpaqueArray"], [49, 4, 1, "", "convertStringOrBytes"], [49, 4, 1, "", "convertToExternalArray"], [49, 4, 1, "", "getExternalArrayType"], [49, 4, 1, "", "makeArrayFromExternArray"], [49, 4, 1, "", "makeArrayFromOpaque"], [49, 4, 1, "", "makeArrayFromPtr"]], "ExternalArray.chpl_external_array": [[49, 1, 1, "", "elts"], [49, 1, 1, "", "freer"], [49, 1, 1, "", "num_elts"]], "ExternalArray.chpl_opaque_array": [[49, 1, 1, "", "_instance"], [49, 1, 1, "", "_pid"], [49, 1, 1, "", "_unowned"]], "ISO_Fortran_binding": [[50, 5, 1, "", "CFI_ERROR_BASE_ADDR_NOT_NULL"], [50, 5, 1, "", "CFI_ERROR_BASE_ADDR_NULL"], [50, 5, 1, "", "CFI_ERROR_MEM_ALLOCATION"], [50, 5, 1, "", "CFI_ERROR_OUT_OF_BOUNDS"], [50, 5, 1, "", "CFI_INVALID_ATTRIBUTE"], [50, 5, 1, "", "CFI_INVALID_DESCRIPTOR"], [50, 5, 1, "", "CFI_INVALID_ELEM_LEN"], [50, 5, 1, "", "CFI_INVALID_EXTENT"], [50, 5, 1, "", "CFI_INVALID_RANK"], [50, 5, 1, "", "CFI_INVALID_TYPE"], [50, 5, 1, "", "CFI_MAX_RANK"], [50, 5, 1, "", "CFI_SUCCESS"], [50, 5, 1, "", "CFI_VERSION"], [50, 5, 1, "", "CFI__VERSION_0001"], [50, 5, 1, "", "CFI__max_attribute"], [50, 5, 1, "", "CFI__max_type"], [50, 4, 1, "", "CFI_address"], [50, 4, 1, "", "CFI_allocate"], [50, 5, 1, "", "CFI_attribute_allocatable"], [50, 5, 1, "", "CFI_attribute_other"], [50, 5, 1, "", "CFI_attribute_pointer"], [50, 7, 1, "", "CFI_attribute_t"], [50, 6, 1, "", "CFI_cdesc_t"], [50, 4, 1, "", "CFI_deallocate"], [50, 6, 1, "", "CFI_dim_t"], [50, 4, 1, "", "CFI_establish"], [50, 7, 1, "", "CFI_index_t"], [50, 4, 1, "", "CFI_is_contiguous"], [50, 7, 1, "", "CFI_rank_t"], [50, 4, 1, "", "CFI_section"], [50, 4, 1, "", "CFI_select_part"], [50, 4, 1, "", "CFI_setpointer"], [50, 5, 1, "", "CFI_type_Bool"], [50, 5, 1, "", "CFI_type_char"], [50, 5, 1, "", "CFI_type_cptr"], [50, 5, 1, "", "CFI_type_double"], [50, 5, 1, "", "CFI_type_double_Complex"], [50, 5, 1, "", "CFI_type_float"], [50, 5, 1, "", "CFI_type_int"], [50, 5, 1, "", "CFI_type_int16_t"], [50, 5, 1, "", "CFI_type_int32_t"], [50, 5, 1, "", "CFI_type_int64_t"], [50, 5, 1, "", "CFI_type_int8_t"], [50, 5, 1, "", "CFI_type_int_fast16_t"], [50, 5, 1, "", "CFI_type_int_fast32_t"], [50, 5, 1, "", "CFI_type_int_fast64_t"], [50, 5, 1, "", "CFI_type_int_fast8_t"], [50, 5, 1, "", "CFI_type_int_least16_t"], [50, 5, 1, "", "CFI_type_int_least32_t"], [50, 5, 1, "", "CFI_type_int_least64_t"], [50, 5, 1, "", "CFI_type_int_least8_t"], [50, 5, 1, "", "CFI_type_intmax_t"], [50, 5, 1, "", "CFI_type_intptr_t"], [50, 5, 1, "", "CFI_type_long"], [50, 5, 1, "", "CFI_type_long_double"], [50, 5, 1, "", "CFI_type_long_double_Complex"], [50, 5, 1, "", "CFI_type_long_long"], [50, 5, 1, "", "CFI_type_other"], [50, 5, 1, "", "CFI_type_ptrdiff_t"], [50, 5, 1, "", "CFI_type_short"], [50, 5, 1, "", "CFI_type_signed_char"], [50, 5, 1, "", "CFI_type_size_t"], [50, 5, 1, "", "CFI_type_struct"], [50, 7, 1, "", "CFI_type_t"], [50, 4, 1, "", "for_CFI_address"], [50, 4, 1, "", "for_CFI_allocate"], [50, 4, 1, "", "for_CFI_deallocate"], [50, 4, 1, "", "for_CFI_establish"], [50, 4, 1, "", "for_CFI_is_contiguous"], [50, 4, 1, "", "for_CFI_section"], [50, 4, 1, "", "for_CFI_select_part"], [50, 4, 1, "", "for_CFI_setpointer"], [50, 4, 1, "", "makeArrayFromFortranArray"]], "ISO_Fortran_binding.CFI_cdesc_t": [[50, 1, 1, "", "attribute"], [50, 1, 1, "", "base_addr"], [50, 1, 1, "", "ctype"], [50, 1, 1, "", "dim"], [50, 1, 1, "", "elem_len"], [50, 1, 1, "", "rank"], [50, 1, 1, "", "version"]], "ISO_Fortran_binding.CFI_dim_t": [[50, 1, 1, "", "extent"], [50, 1, 1, "", "lower_bound"], [50, 1, 1, "", "sm"]], "LocaleModelHelpAPU": [[51, 4, 1, "", "chpl_doDirectExecuteOn"], [51, 4, 1, "", "chpl_executeOn"], [51, 4, 1, "", "chpl_executeOnFast"], [51, 4, 1, "", "chpl_executeOnNB"], [51, 4, 1, "", "chpl_getSubloc"], [51, 4, 1, "", "chpl_task_setSubloc"], [51, 5, 1, "", "debugAPULocale"], [51, 5, 1, "", "localeModelHasSublocales"], [51, 5, 1, "", "localeModelPartitionsIterationOnSublocales"]], "LocaleModelHelpFlat": [[52, 4, 1, "", "chpl_doDirectExecuteOn"], [52, 4, 1, "", "chpl_executeOn"], [52, 4, 1, "", "chpl_executeOnFast"], [52, 4, 1, "", "chpl_executeOnNB"], [52, 5, 1, "", "localeModelHasSublocales"], [52, 5, 1, "", "localeModelPartitionsIterationOnSublocales"]], "LocaleModelHelpGPU": [[53, 4, 1, "", "chpl_doDirectExecuteOn"], [53, 4, 1, "", "chpl_executeOn"], [53, 4, 1, "", "chpl_executeOnFast"], [53, 4, 1, "", "chpl_executeOnNB"], [53, 4, 1, "", "chpl_getSubloc"], [53, 4, 1, "", "chpl_task_setSubloc"], [53, 5, 1, "", "debugGPULocale"], [53, 5, 1, "", "localeModelHasSublocales"], [53, 5, 1, "", "localeModelPartitionsIterationOnSublocales"]], "LocaleModelHelpMem": [[54, 4, 1, "", "chpl_here_aligned_alloc"], [54, 4, 1, "", "chpl_here_alloc"], [54, 4, 1, "", "chpl_here_calloc"], [54, 4, 1, "", "chpl_here_free"], [54, 4, 1, "", "chpl_here_good_alloc_size"], [54, 4, 1, "", "chpl_here_realloc"]], "LocaleModelHelpRuntime": [[55, 4, 1, "", "chpl__initCopy"], [55, 4, 1, "", "chpl_buildLocaleID"], [55, 4, 1, "", "chpl_comm_execute_on"], [55, 4, 1, "", "chpl_comm_execute_on_fast"], [55, 4, 1, "", "chpl_comm_execute_on_nb"], [55, 7, 1, "", "chpl_comm_on_bundle_p"], [55, 6, 1, "", "chpl_comm_on_bundle_t"], [55, 4, 1, "", "chpl_comm_on_bundle_task_bundle"], [55, 4, 1, "", "chpl_comm_taskCallFTable"], [55, 4, 1, "", "chpl_ftable_call"], [55, 6, 1, "", "chpl_localeID_t"], [55, 4, 1, "", "chpl_nodeFromLocaleID"], [55, 4, 1, "", "chpl_rt_buildLocaleID"], [55, 4, 1, "", "chpl_rt_nodeFromLocaleID"], [55, 4, 1, "", "chpl_rt_sublocFromLocaleID"], [55, 4, 1, "", "chpl_sublocFromLocaleID"], [55, 4, 1, "", "chpl_taskAddBegin"], [55, 4, 1, "", "chpl_taskAddCoStmt"], [55, 4, 1, "", "chpl_task_addTask"], [55, 7, 1, "", "chpl_task_bundle_p"], [55, 6, 1, "", "chpl_task_bundle_t"], [55, 4, 1, "", "chpl_task_yield"]], "LocaleModelHelpSetup": [[56, 4, 1, "", "chpl_nodeID"], [56, 6, 1, "", "chpl_root_locale_accum"], [56, 5, 1, "", "debugLocaleModel"], [56, 4, 1, "", "helpSetupLocaleAPU"], [56, 4, 1, "", "helpSetupLocaleFlat"], [56, 4, 1, "", "helpSetupLocaleGPU"], [56, 4, 1, "", "helpSetupLocaleNUMA"], [56, 4, 1, "", "helpSetupRootLocaleAPU"], [56, 4, 1, "", "helpSetupRootLocaleFlat"], [56, 4, 1, "", "helpSetupRootLocaleGPU"], [56, 4, 1, "", "helpSetupRootLocaleNUMA"]], "LocaleModelHelpSetup.chpl_root_locale_accum": [[56, 2, 1, "", "accum"], [56, 2, 1, "", "init"], [56, 2, 1, "", "init="], [56, 1, 1, "", "maxTaskPar"], [56, 1, 1, "", "nPUsLogAcc"], [56, 1, 1, "", "nPUsLogAll"], [56, 1, 1, "", "nPUsPhysAcc"], [56, 1, 1, "", "nPUsPhysAll"], [56, 2, 1, "", "setRootLocaleValues"]], "LocalesArray": [[57, 5, 1, "", "LocaleSpace"], [57, 5, 1, "", "Locales"]], "MemConsistency": [[58, 4, 1, "", "_defaultOf"], [58, 4, 1, "", "c_memory_order"], [58, 4, 1, "", "chpl_rmem_consist_acquire"], [58, 4, 1, "", "chpl_rmem_consist_fence"], [58, 4, 1, "", "chpl_rmem_consist_maybe_acquire"], [58, 4, 1, "", "chpl_rmem_consist_maybe_release"], [58, 4, 1, "", "chpl_rmem_consist_release"], [58, 8, 1, "", "memoryOrder"], [58, 7, 1, "", "memory_order"], [58, 5, 1, "", "memory_order_acq_rel"], [58, 5, 1, "", "memory_order_acquire"], [58, 5, 1, "", "memory_order_consume"], [58, 5, 1, "", "memory_order_relaxed"], [58, 5, 1, "", "memory_order_release"], [58, 5, 1, "", "memory_order_seq_cst"], [58, 4, 1, "", "readableOrder"]], "MemConsistency.memoryOrder": [[58, 9, 1, "", "acqRel"], [58, 9, 1, "", "acquire"], [58, 9, 1, "", "relaxed"], [58, 9, 1, "", "release"], [58, 9, 1, "", "seqCst"]], "MemConsistency.memory_order": [[58, 2, 1, "", "!="], [58, 2, 1, "", "="], [58, 2, 1, "", "=="], [58, 2, 1, "", "serialize"]], "MemTracking": [[59, 5, 1, "", "cMemMax"], [59, 5, 1, "", "cMemThreshold"], [59, 4, 1, "", "chpl_memTracking_returnConfigVals"], [59, 5, 1, "", "memLeaks"], [59, 5, 1, "", "memLeaksByDesc"], [59, 5, 1, "", "memLeaksByType"], [59, 5, 1, "", "memLeaksLog"], [59, 5, 1, "", "memLog"], [59, 5, 1, "", "memMax"], [59, 5, 1, "", "memStats"], [59, 5, 1, "", "memThreshold"], [59, 5, 1, "", "memTrack"]], "NVStringFactory": [[66, 4, 1, "", "chpl_createStringWithBorrowedBufferNV"], [66, 4, 1, "", "chpl_createStringWithNewBufferNV"], [66, 4, 1, "", "chpl_createStringWithOwnedBufferNV"]], "NetworkAtomics": [[61, 6, 1, "", "RAtomicBool"], [61, 6, 1, "", "RAtomicT"]], "NetworkAtomics.RAtomicBool": [[61, 1, 1, "", "_v"], [61, 2, 1, "", "valType"]], "NetworkAtomics.RAtomicT": [[61, 1, 1, "", "_v"], [61, 1, 1, "", "valType"]], "OwnedObject": [[62, 4, 1, "", ":"], [62, 4, 1, "OwnedObject.<=>", "<=>"], [62, 4, 1, "", "="], [62, 6, 1, "", "_owned"], [62, 4, 1, "", "chpl__autoCopy"], [62, 4, 1, "", "chpl__autoDestroy"], [62, 4, 1, "", "chpl__initCopy"]], "OwnedObject._owned": [[62, 2, 1, "", "_readWriteHelper"], [62, 2, 1, "", "adopt"], [62, 2, 1, "", "borrow"], [62, 1, 1, "", "chpl_p"], [62, 1, 1, "", "chpl_t"], [62, 2, 1, "", "deinit"], [62, 2, 1, "", "deserialize"], [62, 2, 1, "", "init"], [62, 2, 1, "", "init="], [62, 2, 1, "", "release"], [62, 2, 1, "", "serialize"]], "PrintModuleInitOrder": [[63, 4, 1, "", "initPrint"], [63, 5, 1, "", "moduleInitLevel"], [63, 4, 1, "", "printModuleInit"], [63, 5, 1, "", "printModuleInitOrder"]], "SharedObject": [[64, 4, 1, "", ":"], [64, 4, 1, "SharedObject.<=>", "<=>"], [64, 4, 1, "", "="], [64, 0, 1, "", "ReferenceCount"], [64, 6, 1, "", "_shared"], [64, 4, 1, "", "chpl__autoDestroy"]], "SharedObject.ReferenceCount": [[64, 2, 1, "", "incrementWeak"], [64, 2, 1, "", "init"], [64, 2, 1, "", "releaseStrong"], [64, 2, 1, "", "releaseTotal"], [64, 2, 1, "", "releaseWeak"], [64, 2, 1, "", "retain"], [64, 1, 1, "", "strongCount"], [64, 1, 1, "", "totalCount"], [64, 2, 1, "", "tryRetainWeak"]], "SharedObject._shared": [[64, 2, 1, "", "_readWriteHelper"], [64, 2, 1, "", "adopt"], [64, 2, 1, "", "borrow"], [64, 1, 1, "", "chpl_p"], [64, 1, 1, "", "chpl_pn"], [64, 1, 1, "", "chpl_t"], [64, 2, 1, "", "deinit"], [64, 2, 1, "", "deserialize"], [64, 2, 1, "", "doClear"], [64, 2, 1, "", "downgrade"], [64, 2, 1, "", "init"], [64, 2, 1, "", "init="], [64, 2, 1, "", "serialize"]], "String": [[65, 4, 1, "", "*"], [65, 4, 1, "", "+"], [65, 4, 1, "", ":"], [65, 4, 1, "", "="], [65, 4, 1, "", "_cond_test"], [65, 6, 1, "", "_string"], [65, 4, 1, "", "_string_contains"], [65, 6, 1, "", "byteIndex"], [65, 4, 1, "", "chpl__idxToInt"], [65, 4, 1, "", "chpl__intToIdx"], [65, 4, 1, "", "chpl__rangeStrideType"], [65, 4, 1, "", "chpl__rangeUnsignedType"], [65, 4, 1, "", "chpl_build_bounded_range"], [65, 4, 1, "", "chpl_build_high_bounded_range"], [65, 4, 1, "", "chpl_build_low_bounded_range"], [65, 4, 1, "", "chpl_createStringWithLiteral"], [65, 6, 1, "", "codepointIndex"], [65, 4, 1, "", "codepointToString"], [65, 7, 1, "", "string"], [65, 5, 1, "", "useCachedNumCodepoints"], [65, 7, 1, "", "wint_t"]], "String._string": [[65, 3, 1, "", "_cpIndexLen"], [65, 2, 1, "", "_cpIndexLenHelpNoAdjustment"], [65, 3, 1, "", "_indexLen"], [65, 1, 1, "", "buff"], [65, 1, 1, "", "buffLen"], [65, 1, 1, "", "buffSize"], [65, 2, 1, "", "byteIndices"], [65, 1, 1, "", "cachedNumCodepoints"], [65, 2, 1, "", "capitalize"], [65, 2, 1, "", "chpl__deserialize"], [65, 2, 1, "", "chpl__serialize"], [65, 2, 1, "", "deinit"], [65, 2, 1, "", "doSearchUTF8"], [65, 3, 1, "", "doSplitWSUTF8"], [65, 2, 1, "", "doSplitWSUTF8Help"], [65, 1, 1, "", "hasEscapes"], [65, 2, 1, "", "init"], [65, 2, 1, "", "init="], [65, 2, 1, "", "isASCII"], [65, 1, 1, "", "isOwned"], [65, 2, 1, "", "join"], [65, 1, 1, "", "locale_id"], [65, 2, 1, "", "serialize"], [65, 2, 1, "", "substring"]], "String.byteIndex": [[65, 2, 1, "", "!"], [65, 2, 1, "", "!="], [65, 2, 1, "", "+"], [65, 2, 1, "", "-"], [65, 2, 1, "", ":"], [65, 2, 1, "String.byteIndex.<", "<"], [65, 2, 1, "String.byteIndex.<=", "<="], [65, 2, 1, "", "="], [65, 2, 1, "", "=="], [65, 2, 1, "String.byteIndex.>", ">"], [65, 2, 1, "String.byteIndex.>=", ">="], [65, 1, 1, "", "_bindex"], [65, 2, 1, "", "init"], [65, 2, 1, "", "init="], [65, 2, 1, "", "serialize"]], "String.codepointIndex": [[65, 2, 1, "", "!"], [65, 2, 1, "", "!="], [65, 2, 1, "", "+"], [65, 2, 1, "", "-"], [65, 2, 1, "", ":"], [65, 2, 1, "String.codepointIndex.<", "<"], [65, 2, 1, "String.codepointIndex.<=", "<="], [65, 2, 1, "", "="], [65, 2, 1, "", "=="], [65, 2, 1, "String.codepointIndex.>", ">"], [65, 2, 1, "String.codepointIndex.>=", ">="], [65, 1, 1, "", "_cpindex"], [65, 2, 1, "", "init"], [65, 2, 1, "", "init="], [65, 2, 1, "", "serialize"]], "String.string": [[65, 2, 1, "", "!="], [65, 2, 1, "", "+"], [65, 2, 1, "", "+="], [65, 2, 1, "String.string.<", "<"], [65, 2, 1, "String.string.<=", "<="], [65, 2, 1, "String.string.<=>", "<=>"], [65, 2, 1, "", "=="], [65, 2, 1, "String.string.>", ">"], [65, 2, 1, "String.string.>=", ">="], [65, 2, 1, "", "appendCodepointValues"], [65, 2, 1, "", "byte"], [65, 2, 1, "", "c_str"], [65, 3, 1, "", "chpl_bytes"], [65, 2, 1, "", "codepoint"], [65, 3, 1, "", "codepoints"], [65, 2, 1, "", "count"], [65, 2, 1, "", "createAdoptingBuffer"], [65, 2, 1, "", "createBorrowingBuffer"], [65, 2, 1, "", "createCopyingBuffer"], [65, 2, 1, "", "dedent"], [65, 2, 1, "", "encode"], [65, 2, 1, "", "endsWith"], [65, 2, 1, "", "find"], [65, 2, 1, "", "hash"], [65, 2, 1, "", "indices"], [65, 2, 1, "", "isAlnum"], [65, 2, 1, "", "isAlpha"], [65, 2, 1, "", "isDigit"], [65, 2, 1, "", "isEmpty"], [65, 2, 1, "", "isLower"], [65, 2, 1, "", "isPrintable"], [65, 2, 1, "", "isSpace"], [65, 2, 1, "", "isTitle"], [65, 2, 1, "", "isUpper"], [65, 2, 1, "", "item"], [65, 3, 1, "", "items"], [65, 2, 1, "", "join"], [65, 2, 1, "", "localize"], [65, 2, 1, "", "numBytes"], [65, 2, 1, "", "numCodepoints"], [65, 2, 1, "", "replace"], [65, 2, 1, "", "rfind"], [65, 2, 1, "", "size"], [65, 3, 1, "", "split"], [65, 2, 1, "", "startsWith"], [65, 2, 1, "", "strip"], [65, 3, 1, "", "these"], [65, 2, 1, "", "this"], [65, 2, 1, "", "toByte"], [65, 2, 1, "", "toCodepoint"], [65, 2, 1, "", "toLower"], [65, 2, 1, "", "toTitle"], [65, 2, 1, "", "toUpper"]], "StringCasts": [[67, 4, 1, "", ":"], [67, 4, 1, "", "_real_cast_helper"]], "currentTask": [[16, 4, 1, "", "yieldExecution"]]}, "objtypes": {"0": "chpl:class", "1": "chpl:attribute", "2": "chpl:method", "3": "chpl:itermethod", "4": "chpl:function", "5": "chpl:data", "6": "chpl:record", "7": "chpl:type", "8": "chpl:enum", "9": "chpl:enumconstant", "10": "chpl:iterfunction"}, "objnames": {"0": ["chpl", "class", " class"], "1": ["chpl", "attribute", " attribute"], "2": ["chpl", "method", " method"], "3": ["chpl", "itermethod", " itermethod"], "4": ["chpl", "function", " function"], "5": ["chpl", "data", " data"], "6": ["chpl", "record", " record"], "7": ["chpl", "type", " type"], "8": ["chpl", "enum", " enum"], "9": ["chpl", "enumconstant", " enumconstant"], "10": ["chpl", "iterfunction", " iterfunction"]}, "titleterms": {"chpldoc": 0, "document": 0, "indic": 0, "tabl": 0, "arrayviewrankchang": 1, "arrayviewreindex": 2, "arrayviewslic": 3, "atom": 4, "atomicscommon": 5, "bytebufferhelp": 6, "byte": 7, "bytescast": 8, "bytesstringcommon": 9, "cstring": 10, "chapelarrai": 11, "chapelarrayviewelis": 12, "chapelautoaggreg": 13, "chapelautolocalaccess": 14, "chapelbas": 15, "currenttask": 16, "chapelcontext": 17, "chapeldebugprint": 18, "chapeldistribut": 19, "chapeldomain": 20, "chapelgpusupport": 21, "chapelhash": 22, "chapelhasht": 23, "chapelioseri": 24, "chapeliostringifyhelp": 25, "chapeliteratorsupport": 26, "chapellocal": 27, "chapellock": 28, "chapelnumlocal": 29, "chapelprivat": 30, "chapelrang": 31, "chapelreduc": 32, "chapelremotevar": 33, "chapelserializedbroadcast": 34, "chapelshortarraytransf": 35, "chapelstandard": 36, "chapelstaticvar": 37, "chapelsyncvar": 38, "chapeltaskdata": 39, "chapeltaskdatahelp": 40, "chapeltaskid": 41, "chapelthread": 42, "chapeltupl": 43, "chapelutil": 44, "defaultassoci": 45, "defaultrectangular": 46, "defaultspars": 47, "exportwrapp": 48, "externalarrai": 49, "iso_fortran_bind": 50, "localemodelhelpapu": 51, "localemodelhelpflat": 52, "localemodelhelpgpu": 53, "localemodelhelpmem": 54, "localemodelhelpruntim": 55, "localemodelhelpsetup": 56, "localesarrai": 57, "memconsist": 58, "memtrack": 59, "networkatomictyp": 60, "networkatom": 61, "ownedobject": 62, "printmoduleinitord": 63, "sharedobject": 64, "string": 65, "nvstringfactori": 66, "stringcast": 67, "startinitcommdiag": 68, "stopinitcommdiag": 69}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"chpldoc documentation": [[0, "chpldoc-documentation"]], "Indices and tables": [[0, "indices-and-tables"]], "ArrayViewRankChange": [[1, "arrayviewrankchange"]], "ArrayViewReindex": [[2, "arrayviewreindex"]], "ArrayViewSlice": [[3, "arrayviewslice"]], "Atomics": [[4, "atomics"]], "AtomicsCommon": [[5, "atomicscommon"]], "ByteBufferHelpers": [[6, "bytebufferhelpers"]], "Bytes": [[7, "bytes"]], "BytesCasts": [[8, "bytescasts"]], "BytesStringCommon": [[9, "bytesstringcommon"]], "CString": [[10, "cstring"]], "ChapelArray": [[11, "chapelarray"]], "ChapelArrayViewElision": [[12, "chapelarrayviewelision"]], "ChapelAutoAggregation": [[13, "chapelautoaggregation"]], "ChapelAutoLocalAccess": [[14, "chapelautolocalaccess"]], "ChapelBase": [[15, "chapelbase"]], "currentTask": [[16, "currenttask"]], "ChapelContext": [[17, "chapelcontext"]], "ChapelDebugPrint": [[18, "chapeldebugprint"]], "ChapelDistribution": [[19, "chapeldistribution"]], "ChapelDomain": [[20, "chapeldomain"]], "ChapelGpuSupport": [[21, "chapelgpusupport"]], "ChapelHashing": [[22, "chapelhashing"]], "ChapelHashtable": [[23, "chapelhashtable"]], "ChapelIOSerialize": [[24, "chapelioserialize"]], "ChapelIOStringifyHelper": [[25, "chapeliostringifyhelper"]], "ChapelIteratorSupport": [[26, "chapeliteratorsupport"]], "ChapelLocale": [[27, "chapellocale"]], "ChapelLocks": [[28, "chapellocks"]], "ChapelNumLocales": [[29, "chapelnumlocales"]], "ChapelPrivatization": [[30, "chapelprivatization"]], "ChapelRange": [[31, "chapelrange"]], "ChapelReduce": [[32, "chapelreduce"]], "ChapelRemoteVars": [[33, "chapelremotevars"]], "ChapelSerializedBroadcast": [[34, "chapelserializedbroadcast"]], "ChapelShortArrayTransfer": [[35, "chapelshortarraytransfer"]], "ChapelStandard": [[36, "chapelstandard"]], "ChapelStaticVars": [[37, "chapelstaticvars"]], "ChapelSyncvar": [[38, "chapelsyncvar"]], "ChapelTaskData": [[39, "chapeltaskdata"]], "ChapelTaskDataHelp": [[40, "chapeltaskdatahelp"]], "ChapelTaskID": [[41, "chapeltaskid"]], "ChapelThreads": [[42, "chapelthreads"]], "ChapelTuple": [[43, "chapeltuple"]], "ChapelUtil": [[44, "chapelutil"]], "DefaultAssociative": [[45, "defaultassociative"]], "DefaultRectangular": [[46, "defaultrectangular"]], "DefaultSparse": [[47, "defaultsparse"]], "ExportWrappers": [[48, "exportwrappers"]], "ExternalArray": [[49, "externalarray"]], "ISO_Fortran_binding": [[50, "iso-fortran-binding"]], "LocaleModelHelpAPU": [[51, "localemodelhelpapu"]], "LocaleModelHelpFlat": [[52, "localemodelhelpflat"]], "LocaleModelHelpGPU": [[53, "localemodelhelpgpu"]], "LocaleModelHelpMem": [[54, "localemodelhelpmem"]], "LocaleModelHelpRuntime": [[55, "localemodelhelpruntime"]], "LocaleModelHelpSetup": [[56, "localemodelhelpsetup"]], "LocalesArray": [[57, "localesarray"]], "MemConsistency": [[58, "memconsistency"]], "MemTracking": [[59, "memtracking"]], "NetworkAtomicTypes": [[60, "networkatomictypes"]], "NetworkAtomics": [[61, "networkatomics"]], "OwnedObject": [[62, "ownedobject"]], "PrintModuleInitOrder": [[63, "printmoduleinitorder"]], "SharedObject": [[64, "sharedobject"]], "String": [[65, "string"]], "NVStringFactory": [[66, "nvstringfactory"]], "StringCasts": [[67, "stringcasts"]], "startInitCommDiags": [[68, "startinitcommdiags"]], "stopInitCommDiags": [[69, "stopinitcommdiags"]]}, "indexentries": {"arrayviewrankchangearr (class in arrayviewrankchange)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr"]], "arrayviewrankchangedist (class in arrayviewrankchange)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist"]], "arrayviewrankchangedom (class in arrayviewrankchange)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom"]], "_arrinstance (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._ArrInstance"]], "_arrpid (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._ArrPid"]], "_dompid (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._DomPid"]], "_containsrcre() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._containsRCRE"]], "_getactualarray() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._getActualArray"]], "_getactualdomain() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom._getActualDomain"]], "_getrcreview() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr._getRCREView"]], "arr() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.arr"]], "buildindexcache() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.buildIndexCache"]], "chpl_rankchangeconvertdom() (in module arrayviewrankchange)": [[1, "ArrayViewRankChange.chpl_rankChangeConvertDom"]], "chpl_rankchangeconvertdowntoup() (in module arrayviewrankchange)": [[1, "ArrayViewRankChange.chpl_rankChangeConvertDownToUp"]], "chpl_rankchangeconverthidtupletolod() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.chpl_rankChangeConvertHiDTupleToLoD"]], "chpl_rankchangeconvertidx() (in module arrayviewrankchange)": [[1, "ArrayViewRankChange.chpl_rankChangeConvertIdx"]], "chpl_rankchangeconvertidxhidtolod() (in module arrayviewrankchange)": [[1, "ArrayViewRankChange.chpl_rankChangeConvertIdxHiDToLoD"]], "chpl_rankchangeconvertlodtupletohid() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.chpl_rankChangeConvertLoDTupleToHiD"]], "collapseddim (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.collapsedDim"]], "collapseddim (arrayviewrankchange.arrayviewrankchangedist attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.collapsedDim"]], "collapseddim (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.collapsedDim"]], "dist() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dist"]], "distinst (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.distInst"]], "distpid (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.distPid"]], "doibulktransferfromknown() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.doiBulkTransferFromKnown"]], "doibulktransfertoknown() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.doiBulkTransferToKnown"]], "doicanbulktransferrankchange() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.doiCanBulkTransferRankChange"]], "dom (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dom"]], "downdist() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.downDist"]], "downdistinst (arrayviewrankchange.arrayviewrankchangedist attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.downDistInst"]], "downdistpid (arrayviewrankchange.arrayviewrankchangedist attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.downDistPid"]], "downdom() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.downDom"]], "downdominst (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.downDomInst"]], "downdompid (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.downDomPid"]], "downidxtoupidx() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.downIdxToUpIdx"]], "downrank() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.downrank"]], "dsiaccess() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiAccess"]], "dsialignedhigh() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiAlignedHigh"]], "dsialignedlow() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiAlignedLow"]], "dsialignment() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiAlignment"]], "dsiassigndomain() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiAssignDomain"]], "dsiboundscheck() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiBoundsCheck"]], "dsibuildarray() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiBuildArray"]], "dsiclone() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiClone"]], "dsicreateindexbuffer() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiCreateIndexBuffer"]], "dsidestroyarr() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiDestroyArr"]], "dsidestroydist() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiDestroyDist"]], "dsidestroydom() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiDestroyDom"]], "dsidisplayrepresentation() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiDisplayRepresentation"]], "dsielementinitializationcomplete() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiElementInitializationComplete"]], "dsiequaldmaps() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiEqualDMaps"]], "dsifirst() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiFirst"]], "dsigetbasedom() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiGetBaseDom"]], "dsigetprivatizedata() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiGetPrivatizeData"]], "dsigetprivatizedata() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiGetPrivatizeData"]], "dsigetprivatizedata() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiGetPrivatizeData"]], "dsigetreprivatizedata() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiGetReprivatizeData"]], "dsihassinglelocalsubdomain() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiHasSingleLocalSubdomain"]], "dsihassinglelocalsubdomain() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiHasSingleLocalSubdomain"]], "dsihigh() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiHigh"]], "dsiindexorder() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiIndexOrder"]], "dsiislayout() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiIsLayout"]], "dsilast() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiLast"]], "dsilocalaccess() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiLocalAccess"]], "dsilocalsubdomain() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiLocalSubdomain"]], "dsilocalsubdomain() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiLocalSubdomain"]], "dsilow() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiLow"]], "dsimydist() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiMyDist"]], "dsinewrectangulardom() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiNewRectangularDom"]], "dsiprivatize() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiPrivatize"]], "dsiprivatize() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiPrivatize"]], "dsiprivatize() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiPrivatize"]], "dsireprivatize() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiReprivatize"]], "dsiserialread() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiSerialRead"]], "dsiserialwrite() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiSerialWrite"]], "dsiserialwrite() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiSerialWrite"]], "dsisetindices() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiSetIndices"]], "dsistride() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiStride"]], "dsisupportsautolocalaccess() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiSupportsAutoLocalAccess"]], "dsisupportsprivatization() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.dsiSupportsPrivatization"]], "dsisupportsprivatization() (arrayviewrankchange.arrayviewrankchangedist method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.dsiSupportsPrivatization"]], "dsisupportsprivatization() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiSupportsPrivatization"]], "dsitargetlocales() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.dsiTargetLocales"]], "idx (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.idx"]], "idx (arrayviewrankchange.arrayviewrankchangedist attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDist.idx"]], "idx (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.idx"]], "idxtype() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.idxType"]], "indexcache (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.indexCache"]], "init() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.init"]], "isrankchangearrayview() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.isRankChangeArrayView"]], "isrankchangedomainview() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.isRankChangeDomainView"]], "ownsarrinstance (arrayviewrankchange.arrayviewrankchangearr attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.ownsArrInstance"]], "parsafe() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.parSafe"]], "privdom() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.privDom"]], "rank() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.rank"]], "shoulduseindexcache() (arrayviewrankchange.arrayviewrankchangearr method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.shouldUseIndexCache"]], "these() (arrayviewrankchange.arrayviewrankchangearr iterator)": [[1, "ArrayViewRankChange.ArrayViewRankChangeArr.these"]], "these() (arrayviewrankchange.arrayviewrankchangedom iterator)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.these"]], "updom() (arrayviewrankchange.arrayviewrankchangedom method)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.upDom"]], "updominst (arrayviewrankchange.arrayviewrankchangedom attribute)": [[1, "ArrayViewRankChange.ArrayViewRankChangeDom.upDomInst"]], "arrayviewreindexarr (class in arrayviewreindex)": [[2, "ArrayViewReindex.ArrayViewReindexArr"]], "arrayviewreindexdist (class in arrayviewreindex)": [[2, "ArrayViewReindex.ArrayViewReindexDist"]], "arrayviewreindexdom (class in arrayviewreindex)": [[2, "ArrayViewReindex.ArrayViewReindexDom"]], "_arrinstance (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr._ArrInstance"]], "_arrpid (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr._ArrPid"]], "_dompid (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr._DomPid"]], "_containsrcre() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr._containsRCRE"]], "_getactualarray() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr._getActualArray"]], "_getactualdomain() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom._getActualDomain"]], "_getrcreview() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr._getRCREView"]], "arr() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.arr"]], "buildindexcache() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.buildIndexCache"]], "chpl_reindexconvertdom() (in module arrayviewreindex)": [[2, "ArrayViewReindex.chpl_reindexConvertDom"]], "chpl_reindexconvertdommaybeslice() (in module arrayviewreindex)": [[2, "ArrayViewReindex.chpl_reindexConvertDomMaybeSlice"]], "chpl_reindexconverthidtupletolod() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.chpl_reindexConvertHiDTupleToLoD"]], "chpl_reindexconvertidx() (in module arrayviewreindex)": [[2, "ArrayViewReindex.chpl_reindexConvertIdx"]], "chpl_reindexconvertidxdim() (in module arrayviewreindex)": [[2, "ArrayViewReindex.chpl_reindexConvertIdxDim"]], "chpl_reindexconvertlodtupletohid() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.chpl_reindexConvertLoDTupleToHiD"]], "dist() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dist"]], "distinst (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.distInst"]], "distpid (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.distPid"]], "doibulktransferfromknown() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.doiBulkTransferFromKnown"]], "doibulktransfertoknown() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.doiBulkTransferToKnown"]], "doicanbulktransferrankchange() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.doiCanBulkTransferRankChange"]], "dom (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dom"]], "downdist() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.downDist"]], "downdistinst (arrayviewreindex.arrayviewreindexdist attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDist.downDistInst"]], "downdistpid (arrayviewreindex.arrayviewreindexdist attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDist.downDistPid"]], "downidxtoupidx() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.downIdxToUpIdx"]], "downdom() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.downdom"]], "downdom() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.downdom"]], "downdominst (arrayviewreindex.arrayviewreindexdist attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDist.downdomInst"]], "downdominst (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.downdomInst"]], "downdompid (arrayviewreindex.arrayviewreindexdist attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDist.downdomPid"]], "downdompid (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.downdomPid"]], "downdomtype() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.downdomtype"]], "dsiaccess() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiAccess"]], "dsialignedhigh() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiAlignedHigh"]], "dsialignedlow() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiAlignedLow"]], "dsialignment() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiAlignment"]], "dsiassigndomain() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiAssignDomain"]], "dsiboundscheck() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiBoundsCheck"]], "dsibuildarray() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiBuildArray"]], "dsiclone() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiClone"]], "dsicreateindexbuffer() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiCreateIndexBuffer"]], "dsidestroyarr() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiDestroyArr"]], "dsidestroydist() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiDestroyDist"]], "dsidestroydom() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiDestroyDom"]], "dsidisplayrepresentation() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiDisplayRepresentation"]], "dsielementinitializationcomplete() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiElementInitializationComplete"]], "dsifirst() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiFirst"]], "dsigetbasedom() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiGetBaseDom"]], "dsigetprivatizedata() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiGetPrivatizeData"]], "dsigetprivatizedata() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiGetPrivatizeData"]], "dsigetprivatizedata() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiGetPrivatizeData"]], "dsigetreprivatizedata() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiGetReprivatizeData"]], "dsihassinglelocalsubdomain() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiHasSingleLocalSubdomain"]], "dsihassinglelocalsubdomain() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiHasSingleLocalSubdomain"]], "dsihigh() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiHigh"]], "dsiindexorder() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiIndexOrder"]], "dsiislayout() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiIsLayout"]], "dsilast() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiLast"]], "dsilocalaccess() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiLocalAccess"]], "dsilocalsubdomain() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiLocalSubdomain"]], "dsilocalsubdomain() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiLocalSubdomain"]], "dsilow() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiLow"]], "dsimydist() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiMyDist"]], "dsinewrectangulardom() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiNewRectangularDom"]], "dsiprivatize() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiPrivatize"]], "dsiprivatize() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiPrivatize"]], "dsiprivatize() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiPrivatize"]], "dsireprivatize() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiReprivatize"]], "dsiserialread() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiSerialRead"]], "dsiserialwrite() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiSerialWrite"]], "dsisetindices() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiSetIndices"]], "dsistride() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiStride"]], "dsisupportsprivatization() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.dsiSupportsPrivatization"]], "dsisupportsprivatization() (arrayviewreindex.arrayviewreindexdist method)": [[2, "ArrayViewReindex.ArrayViewReindexDist.dsiSupportsPrivatization"]], "dsisupportsprivatization() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiSupportsPrivatization"]], "dsitargetlocales() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.dsiTargetLocales"]], "idxtype() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.idxType"]], "indexcache (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr.indexCache"]], "init() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.init"]], "isreindexarrayview() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.isReindexArrayView"]], "isreindexdomainview() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.isReindexDomainView"]], "ownsarrinstance (arrayviewreindex.arrayviewreindexarr attribute)": [[2, "ArrayViewReindex.ArrayViewReindexArr.ownsArrInstance"]], "ownsdowndominst (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.ownsDownDomInst"]], "parsafe() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.parSafe"]], "privdom() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.privDom"]], "rank() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.rank"]], "shoulduseindexcache() (arrayviewreindex.arrayviewreindexarr method)": [[2, "ArrayViewReindex.ArrayViewReindexArr.shouldUseIndexCache"]], "these() (arrayviewreindex.arrayviewreindexarr iterator)": [[2, "ArrayViewReindex.ArrayViewReindexArr.these"]], "these() (arrayviewreindex.arrayviewreindexdom iterator)": [[2, "ArrayViewReindex.ArrayViewReindexDom.these"]], "updom (arrayviewreindex.arrayviewreindexdist attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDist.updom"]], "updom() (arrayviewreindex.arrayviewreindexdom method)": [[2, "ArrayViewReindex.ArrayViewReindexDom.updom"]], "updominst (arrayviewreindex.arrayviewreindexdom attribute)": [[2, "ArrayViewReindex.ArrayViewReindexDom.updomInst"]], "arrayviewslicearr (class in arrayviewslice)": [[3, "ArrayViewSlice.ArrayViewSliceArr"]], "_arrinstance (arrayviewslice.arrayviewslicearr attribute)": [[3, "ArrayViewSlice.ArrayViewSliceArr._ArrInstance"]], "_arrpid (arrayviewslice.arrayviewslicearr attribute)": [[3, "ArrayViewSlice.ArrayViewSliceArr._ArrPid"]], "_dompid (arrayviewslice.arrayviewslicearr attribute)": [[3, "ArrayViewSlice.ArrayViewSliceArr._DomPid"]], "_containsrcre() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr._containsRCRE"]], "_getactualarray() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr._getActualArray"]], "_getrcreview() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr._getRCREView"]], "arr() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.arr"]], "buildindexcache() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.buildIndexCache"]], "chpl__deserialize() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.chpl__deserialize"]], "chpl__rvfme() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.chpl__rvfMe"]], "chpl__serialize() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.chpl__serialize"]], "chpl_debugserializeslice (in module arrayviewslice)": [[3, "ArrayViewSlice.chpl_debugSerializeSlice"]], "chpl_serializeslices (in module arrayviewslice)": [[3, "ArrayViewSlice.chpl_serializeSlices"]], "doibulktransferfromknown() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.doiBulkTransferFromKnown"]], "doibulktransfertoknown() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.doiBulkTransferToKnown"]], "doicanbulktransferrankchange() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.doiCanBulkTransferRankChange"]], "dom (arrayviewslice.arrayviewslicearr attribute)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dom"]], "dsiaccess() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiAccess"]], "dsiboundscheck() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiBoundsCheck"]], "dsidestroyarr() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiDestroyArr"]], "dsidisplayrepresentation() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiDisplayRepresentation"]], "dsielementinitializationcomplete() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiElementInitializationComplete"]], "dsigetbasedom() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiGetBaseDom"]], "dsigetprivatizedata() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiGetPrivatizeData"]], "dsihassinglelocalsubdomain() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiHasSingleLocalSubdomain"]], "dsilocalsubdomain() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiLocalSubdomain"]], "dsilocalsubdomains() (arrayviewslice.arrayviewslicearr iterator)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiLocalSubdomains"]], "dsiprivatize() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiPrivatize"]], "dsiserialread() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiSerialRead"]], "dsiserialwrite() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiSerialWrite"]], "dsisupportsprivatization() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.dsiSupportsPrivatization"]], "idxtype() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.idxType"]], "indexcache (arrayviewslice.arrayviewslicearr attribute)": [[3, "ArrayViewSlice.ArrayViewSliceArr.indexCache"]], "init() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.init"]], "isslicearrayview() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.isSliceArrayView"]], "privdom() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.privDom"]], "rank() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.rank"]], "shoulduseindexcache() (arrayviewslice.arrayviewslicearr method)": [[3, "ArrayViewSlice.ArrayViewSliceArr.shouldUseIndexCache"]], "these() (arrayviewslice.arrayviewslicearr iterator)": [[3, "ArrayViewSlice.ArrayViewSliceArr.these"]], "%() (atomics.atomict method)": [[4, "Atomics.AtomicT.%"]], "*() (atomics.atomict method)": [[4, "Atomics.AtomicT.*"]], "+() (atomics.atomict method)": [[4, "Atomics.AtomicT.+"]], "-() (atomics.atomict method)": [[4, "Atomics.AtomicT.-"]], "/() (atomics.atomict method)": [[4, "Atomics.AtomicT./"]], ":() (in module atomics)": [[4, "Atomics.:"]], "=() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.="]], "=() (atomics.atomict method)": [[4, "Atomics.AtomicT.="]], "atomicbool (record in atomics)": [[4, "Atomics.AtomicBool"]], "atomict (record in atomics)": [[4, "Atomics.AtomicT"]], "_v (atomics.atomicbool attribute)": [[4, "Atomics.AtomicBool._v"]], "_v (atomics.atomict attribute)": [[4, "Atomics.AtomicT._v"]], "add() (atomics.atomict method)": [[4, "Atomics.AtomicT.add"]], "and() (atomics.atomict method)": [[4, "Atomics.AtomicT.and"]], "atomicfence() (in module atomics)": [[4, "Atomics.atomicFence"]], "atomic_fence() (in module atomics)": [[4, "Atomics.atomic_fence"]], "chpl__atomictype() (in module atomics)": [[4, "Atomics.chpl__atomicType"]], "chpl__processoratomictype() (in module atomics)": [[4, "Atomics.chpl__processorAtomicType"]], "chpl_atomic_thread_fence() (in module atomics)": [[4, "Atomics.chpl_atomic_thread_fence"]], "chpl_comm_ensure_progress() (in module atomics)": [[4, "Atomics.chpl_comm_ensure_progress"]], "clear() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.clear"]], "compareandswap() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.compareAndSwap"]], "compareandswap() (atomics.atomict method)": [[4, "Atomics.AtomicT.compareAndSwap"]], "compareexchange() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.compareExchange"]], "compareexchange() (atomics.atomict method)": [[4, "Atomics.AtomicT.compareExchange"]], "compareexchangeweak() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.compareExchangeWeak"]], "compareexchangeweak() (atomics.atomict method)": [[4, "Atomics.AtomicT.compareExchangeWeak"]], "deinit() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.deinit"]], "deinit() (atomics.atomict method)": [[4, "Atomics.AtomicT.deinit"]], "exchange() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.exchange"]], "exchange() (atomics.atomict method)": [[4, "Atomics.AtomicT.exchange"]], "fetchadd() (atomics.atomict method)": [[4, "Atomics.AtomicT.fetchAdd"]], "fetchand() (atomics.atomict method)": [[4, "Atomics.AtomicT.fetchAnd"]], "fetchor() (atomics.atomict method)": [[4, "Atomics.AtomicT.fetchOr"]], "fetchsub() (atomics.atomict method)": [[4, "Atomics.AtomicT.fetchSub"]], "fetchxor() (atomics.atomict method)": [[4, "Atomics.AtomicT.fetchXor"]], "init() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.init"]], "init() (atomics.atomict method)": [[4, "Atomics.AtomicT.init"]], "init=() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.init="]], "init=() (atomics.atomict method)": [[4, "Atomics.AtomicT.init="]], "init_helper() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.init_helper"]], "init_helper() (atomics.atomict method)": [[4, "Atomics.AtomicT.init_helper"]], "or() (atomics.atomict method)": [[4, "Atomics.AtomicT.or"]], "sub() (atomics.atomict method)": [[4, "Atomics.AtomicT.sub"]], "testandset() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.testAndSet"]], "valtype (atomics.atomict attribute)": [[4, "Atomics.AtomicT.valType"]], "valtype() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.valType"]], "write() (atomics.atomicbool method)": [[4, "Atomics.AtomicBool.write"]], "write() (atomics.atomict method)": [[4, "Atomics.AtomicT.write"]], "xor() (atomics.atomict method)": [[4, "Atomics.AtomicT.xor"]], "_cnt (atomicscommon.atomic_refcnt attribute)": [[5, "AtomicsCommon.atomic_refcnt._cnt"]], "atomic_refcnt (record in atomicscommon)": [[5, "AtomicsCommon.atomic_refcnt"]], "dec() (atomicscommon.atomic_refcnt method)": [[5, "AtomicsCommon.atomic_refcnt.dec"]], "inc() (atomicscommon.atomic_refcnt method)": [[5, "AtomicsCommon.atomic_refcnt.inc"]], "init() (atomicscommon.atomic_refcnt method)": [[5, "AtomicsCommon.atomic_refcnt.init"]], "init=() (atomicscommon.atomic_refcnt method)": [[5, "AtomicsCommon.atomic_refcnt.init="]], "read() (atomicscommon.atomic_refcnt method)": [[5, "AtomicsCommon.atomic_refcnt.read"]], "_strcmp() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers._strcmp"]], "bufferalloc() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferAlloc"]], "buffercopy() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferCopy"]], "buffercopylocal() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferCopyLocal"]], "buffercopyremote() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferCopyRemote"]], "bufferensuresize() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferEnsureSize"]], "bufferequals() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferEquals"]], "bufferequalslocal() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferEqualsLocal"]], "bufferfree() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferFree"]], "buffergetbyte() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferGetByte"]], "buffermemcpy() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferMemcpy"]], "buffermemcpylocal() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferMemcpyLocal"]], "buffermemmovelocal() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferMemmoveLocal"]], "bufferrealloc() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferRealloc"]], "buffertype (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.bufferType"]], "bytetype (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.byteType"]], "chpl_stringgrowthfactor (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.chpl_stringGrowthFactor"]], "chpl_string_comm_get() (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.chpl_string_comm_get"]], "locidtype (in module bytebufferhelpers)": [[6, "ByteBufferHelpers.locIdType"]], "!=() (bytes.bytes method)": [[7, "Bytes.bytes.!="]], "*() (in module bytes)": [[7, "Bytes.*"]], "+() (bytes.bytes method)": [[7, "Bytes.bytes.+"]], "+=() (bytes.bytes method)": [[7, "Bytes.bytes.+="]], ":() (in module bytes)": [[7, "Bytes.:"]], "<() (bytes.bytes method)": [[7, "Bytes.bytes.<"]], "<=() (bytes.bytes method)": [[7, "Bytes.bytes.<="]], "<=>() (bytes.bytes method)": [[7, "Bytes.bytes.<=>"]], "=() (bytes.bytes method)": [[7, "Bytes.bytes.="]], "==() (bytes.bytes method)": [[7, "Bytes.bytes.=="]], ">() (bytes.bytes method)": [[7, "Bytes.bytes.>"]], ">=() (bytes.bytes method)": [[7, "Bytes.bytes.>="]], "_bytes (record in bytes)": [[7, "Bytes._bytes"]], "appendbytevalues() (bytes.bytes method)": [[7, "Bytes.bytes.appendByteValues"]], "buff (bytes._bytes attribute)": [[7, "Bytes._bytes.buff"]], "bufflen (bytes._bytes attribute)": [[7, "Bytes._bytes.buffLen"]], "buffsize (bytes._bytes attribute)": [[7, "Bytes._bytes.buffSize"]], "byte() (bytes._bytes method)": [[7, "Bytes._bytes.byte"]], "byte() (bytes.bytes method)": [[7, "Bytes.bytes.byte"]], "byteindices() (bytes._bytes method)": [[7, "Bytes._bytes.byteIndices"]], "bytes (in module bytes)": [[7, "Bytes.bytes"]], "c_str() (bytes.bytes method)": [[7, "Bytes.bytes.c_str"]], "chpl__deserialize() (bytes._bytes method)": [[7, "Bytes._bytes.chpl__deserialize"]], "chpl__serialize() (bytes._bytes method)": [[7, "Bytes._bytes.chpl__serialize"]], "chpl_bytes() (bytes.bytes iterator)": [[7, "Bytes.bytes.chpl_bytes"]], "chpl_createbyteswithliteral() (in module bytes)": [[7, "Bytes.chpl_createBytesWithLiteral"]], "count() (bytes.bytes method)": [[7, "Bytes.bytes.count"]], "createadoptingbuffer() (bytes.bytes method)": [[7, "Bytes.bytes.createAdoptingBuffer"]], "createborrowingbuffer() (bytes.bytes method)": [[7, "Bytes.bytes.createBorrowingBuffer"]], "createcopyingbuffer() (bytes.bytes method)": [[7, "Bytes.bytes.createCopyingBuffer"]], "decode() (bytes.bytes method)": [[7, "Bytes.bytes.decode"]], "dedent() (bytes.bytes method)": [[7, "Bytes.bytes.dedent"]], "deinit() (bytes._bytes method)": [[7, "Bytes._bytes.deinit"]], "deserialize() (bytes._bytes method)": [[7, "Bytes._bytes.deserialize"]], "endswith() (bytes.bytes method)": [[7, "Bytes.bytes.endsWith"]], "find() (bytes.bytes method)": [[7, "Bytes.bytes.find"]], "hash() (bytes.bytes method)": [[7, "Bytes.bytes.hash"]], "indices() (bytes.bytes method)": [[7, "Bytes.bytes.indices"]], "init() (bytes._bytes method)": [[7, "Bytes._bytes.init"]], "init=() (bytes._bytes method)": [[7, "Bytes._bytes.init="]], "isalnum() (bytes.bytes method)": [[7, "Bytes.bytes.isAlnum"]], "isalpha() (bytes.bytes method)": [[7, "Bytes.bytes.isAlpha"]], "isdigit() (bytes.bytes method)": [[7, "Bytes.bytes.isDigit"]], "isempty() (bytes.bytes method)": [[7, "Bytes.bytes.isEmpty"]], "islower() (bytes.bytes method)": [[7, "Bytes.bytes.isLower"]], "isowned (bytes._bytes attribute)": [[7, "Bytes._bytes.isOwned"]], "isprintable() (bytes.bytes method)": [[7, "Bytes.bytes.isPrintable"]], "isspace() (bytes.bytes method)": [[7, "Bytes.bytes.isSpace"]], "istitle() (bytes.bytes method)": [[7, "Bytes.bytes.isTitle"]], "isupper() (bytes.bytes method)": [[7, "Bytes.bytes.isUpper"]], "item() (bytes._bytes method)": [[7, "Bytes._bytes.item"]], "item() (bytes.bytes method)": [[7, "Bytes.bytes.item"]], "items() (bytes.bytes iterator)": [[7, "Bytes.bytes.items"]], "join() (bytes._bytes method)": [[7, "Bytes._bytes.join"]], "join() (bytes.bytes method)": [[7, "Bytes.bytes.join"]], "locale_id (bytes._bytes attribute)": [[7, "Bytes._bytes.locale_id"]], "localize() (bytes.bytes method)": [[7, "Bytes.bytes.localize"]], "numbytes() (bytes._bytes method)": [[7, "Bytes._bytes.numBytes"]], "numbytes() (bytes.bytes method)": [[7, "Bytes.bytes.numBytes"]], "replace() (bytes.bytes method)": [[7, "Bytes.bytes.replace"]], "rfind() (bytes.bytes method)": [[7, "Bytes.bytes.rfind"]], "serialize() (bytes._bytes method)": [[7, "Bytes._bytes.serialize"]], "size() (bytes._bytes method)": [[7, "Bytes._bytes.size"]], "size() (bytes.bytes method)": [[7, "Bytes.bytes.size"]], "split() (bytes.bytes iterator)": [[7, "Bytes.bytes.split"]], "startswith() (bytes.bytes method)": [[7, "Bytes.bytes.startsWith"]], "strip() (bytes.bytes method)": [[7, "Bytes.bytes.strip"]], "these() (bytes.bytes iterator)": [[7, "Bytes.bytes.these"]], "this() (bytes._bytes method)": [[7, "Bytes._bytes.this"]], "this() (bytes.bytes method)": [[7, "Bytes.bytes.this"]], "tobyte() (bytes._bytes method)": [[7, "Bytes._bytes.toByte"]], "tobyte() (bytes.bytes method)": [[7, "Bytes.bytes.toByte"]], "tohexadecimal() (bytes.bytes method)": [[7, "Bytes.bytes.toHexadecimal"]], "tolower() (bytes.bytes method)": [[7, "Bytes.bytes.toLower"]], "totitle() (bytes.bytes method)": [[7, "Bytes.bytes.toTitle"]], "toupper() (bytes.bytes method)": [[7, "Bytes.bytes.toUpper"]], ":() (in module bytescasts)": [[8, "BytesCasts.:"]], "_real_cast_helper() (in module bytescasts)": [[8, "BytesCasts._real_cast_helper"]], "chpl_short_string_size (in module bytesstringcommon)": [[9, "BytesStringCommon.CHPL_SHORT_STRING_SIZE"]], "__serializehelper (record in bytesstringcommon)": [[9, "BytesStringCommon.__serializeHelper"]], "_cleanupfornumericcast() (in module bytesstringcommon)": [[9, "BytesStringCommon._cleanupForNumericCast"]], "_findstartofnextcodepointfrombyte() (in module bytesstringcommon)": [[9, "BytesStringCommon._findStartOfNextCodepointFromByte"]], "buff (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.buff"]], "bufflen (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.buffLen"]], "byte_isalnum() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isAlnum"]], "byte_isalpha() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isAlpha"]], "byte_isascii() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isAscii"]], "byte_isdigit() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isDigit"]], "byte_islower() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isLower"]], "byte_isprintable() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isPrintable"]], "byte_isupper() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isUpper"]], "byte_iswhitespace() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_isWhitespace"]], "byte_tolower() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_toLower"]], "byte_toupper() (in module bytesstringcommon)": [[9, "BytesStringCommon.byte_toUpper"]], "cachednumcodepoints (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.cachedNumCodepoints"]], "chpl__getinplacebufferdata() (in module bytesstringcommon)": [[9, "BytesStringCommon.chpl__getInPlaceBufferData"]], "chpl__getinplacebufferdataforwrite() (in module bytesstringcommon)": [[9, "BytesStringCommon.chpl__getInPlaceBufferDataForWrite"]], "chpl__inplacebuffer (record in bytesstringcommon)": [[9, "BytesStringCommon.chpl__inPlaceBuffer"]], "countnumcodepoints() (in module bytesstringcommon)": [[9, "BytesStringCommon.countNumCodepoints"]], "decodebytebuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.decodeByteBuffer"]], "decodehelp() (in module bytesstringcommon)": [[9, "BytesStringCommon.decodeHelp"]], "decodepolicy (enum in bytesstringcommon)": [[9, "BytesStringCommon.decodePolicy"]], "doappend() (in module bytesstringcommon)": [[9, "BytesStringCommon.doAppend"]], "doappendsomebytes() (in module bytesstringcommon)": [[9, "BytesStringCommon.doAppendSomeBytes"]], "doassign() (in module bytesstringcommon)": [[9, "BytesStringCommon.doAssign"]], "doconcat() (in module bytesstringcommon)": [[9, "BytesStringCommon.doConcat"]], "dodedent() (in module bytesstringcommon)": [[9, "BytesStringCommon.doDedent"]], "doeq() (in module bytesstringcommon)": [[9, "BytesStringCommon.doEq"]], "dogreaterthan() (in module bytesstringcommon)": [[9, "BytesStringCommon.doGreaterThan"]], "dogreaterthanoreq() (in module bytesstringcommon)": [[9, "BytesStringCommon.doGreaterThanOrEq"]], "dojoin() (in module bytesstringcommon)": [[9, "BytesStringCommon.doJoin"]], "dojoiniterator() (in module bytesstringcommon)": [[9, "BytesStringCommon.doJoinIterator"]], "dolessthan() (in module bytesstringcommon)": [[9, "BytesStringCommon.doLessThan"]], "dolessthanoreq() (in module bytesstringcommon)": [[9, "BytesStringCommon.doLessThanOrEq"]], "domultiply() (in module bytesstringcommon)": [[9, "BytesStringCommon.doMultiply"]], "dopartition() (in module bytesstringcommon)": [[9, "BytesStringCommon.doPartition"]], "doreplace() (in module bytesstringcommon)": [[9, "BytesStringCommon.doReplace"]], "dosearchnoenc() (in module bytesstringcommon)": [[9, "BytesStringCommon.doSearchNoEnc"]], "dosplit() (in module bytesstringcommon)": [[9, "BytesStringCommon.doSplit"]], "dosplithelp() (in module bytesstringcommon)": [[9, "BytesStringCommon.doSplitHelp"]], "dosplitwsnoenc() (in module bytesstringcommon)": [[9, "BytesStringCommon.doSplitWSNoEnc"]], "dosplitwsnoenchelp() (in module bytesstringcommon)": [[9, "BytesStringCommon.doSplitWSNoEncHelp"]], "dostripnoenc() (in module bytesstringcommon)": [[9, "BytesStringCommon.doStripNoEnc"]], "encodepolicy (enum in bytesstringcommon)": [[9, "BytesStringCommon.encodePolicy"]], "getcstr() (in module bytesstringcommon)": [[9, "BytesStringCommon.getCStr"]], "gethash() (in module bytesstringcommon)": [[9, "BytesStringCommon.getHash"]], "getindextype() (in module bytesstringcommon)": [[9, "BytesStringCommon.getIndexType"]], "getslice() (in module bytesstringcommon)": [[9, "BytesStringCommon.getSlice"]], "getview() (in module bytesstringcommon)": [[9, "BytesStringCommon.getView"]], "initwithborrowedbuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.initWithBorrowedBuffer"]], "initwithnewbuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.initWithNewBuffer"]], "initwithownedbuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.initWithOwnedBuffer"]], "isinitialbyte() (in module bytesstringcommon)": [[9, "BytesStringCommon.isInitialByte"]], "locale_id (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.locale_id"]], "reinitwithnewbuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.reinitWithNewBuffer"]], "reinitwithownedbuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.reinitWithOwnedBuffer"]], "resizebuffer() (in module bytesstringcommon)": [[9, "BytesStringCommon.resizeBuffer"]], "resizebufferforappend() (in module bytesstringcommon)": [[9, "BytesStringCommon.resizeBufferForAppend"]], "shortdata (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.shortData"]], "showstringbytesinitdeprwarnings (in module bytesstringcommon)": [[9, "BytesStringCommon.showStringBytesInitDeprWarnings"]], "size (bytesstringcommon.__serializehelper attribute)": [[9, "BytesStringCommon.__serializeHelper.size"]], "startsendswith() (in module bytesstringcommon)": [[9, "BytesStringCommon.startsEndsWith"]], "surrogateescape (in module bytesstringcommon)": [[9, "BytesStringCommon.surrogateEscape"]], "!=() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.!="]], ":() (in module cstring)": [[10, "CString.:"]], "<() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.<"]], "<=() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.<="]], "=() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.="]], "==() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.=="]], ">() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.>"]], ">=() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.>="]], "_string_contains() (in module cstring)": [[10, "CString._string_contains"]], "chpl__autocopy() (in module cstring)": [[10, "CString.chpl__autoCopy"]], "chpl__initcopy() (in module cstring)": [[10, "CString.chpl__initCopy"]], "chpl_free_c_string() (in module cstring)": [[10, "CString.chpl_free_c_string"]], "deserialize() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.deserialize"]], "indexof() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.indexOf"]], "serialize() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.serialize"]], "size() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.size"]], "string_index_of() (in module cstring)": [[10, "CString.string_index_of"]], "substring() (cstring.chpl_c_string method)": [[10, "CString.chpl_c_string.substring"]], "!=() (in module chapelarray)": [[11, "ChapelArray.!="]], "%=() (in module chapelarray)": [[11, "ChapelArray.%="]], "&=() (in module chapelarray)": [[11, "ChapelArray.&="]], "**=() (in module chapelarray)": [[11, "ChapelArray.**="]], "*=() (in module chapelarray)": [[11, "ChapelArray.*="]], "+=() (in module chapelarray)": [[11, "ChapelArray.+="]], "-=() (in module chapelarray)": [[11, "ChapelArray.-="]], "/=() (in module chapelarray)": [[11, "ChapelArray./="]], ":() (in module chapelarray)": [[11, "ChapelArray.:"]], "<<=() (in module chapelarray)": [[11, "ChapelArray.<<="]], "<=>() (in module chapelarray)": [[11, "ChapelArray.<=>"]], "=() (in module chapelarray)": [[11, "ChapelArray.="]], "==() (in module chapelarray)": [[11, "ChapelArray.=="]], ">>=() (in module chapelarray)": [[11, "ChapelArray.>>="]], "chpl_warn_domain_literal (in module chapelarray)": [[11, "ChapelArray.CHPL_WARN_DOMAIN_LITERAL"]], "irv() (chapelarray._array method)": [[11, "ChapelArray._array.IRV"]], "podvalaccess (in module chapelarray)": [[11, "ChapelArray.PODValAccess"]], "^=() (in module chapelarray)": [[11, "ChapelArray.^="]], "_array (record in chapelarray)": [[11, "ChapelArray._array"]], "_deinitelements() (in module chapelarray)": [[11, "ChapelArray._deinitElements"]], "_deinitelementsisparallel() (in module chapelarray)": [[11, "ChapelArray._deinitElementsIsParallel"]], "_desync() (in module chapelarray)": [[11, "ChapelArray._desync"]], "_do_destroy_arr() (in module chapelarray)": [[11, "ChapelArray._do_destroy_arr"]], "_do_destroy_array() (in module chapelarray)": [[11, "ChapelArray._do_destroy_array"]], "_dom() (chapelarray._array method)": [[11, "ChapelArray._array._dom"]], "_freeprivatizedclass() (in module chapelarray)": [[11, "ChapelArray._freePrivatizedClass"]], "_getdistribution() (in module chapelarray)": [[11, "ChapelArray._getDistribution"]], "_instance (chapelarray._array attribute)": [[11, "ChapelArray._array._instance"]], "_isprivatized() (in module chapelarray)": [[11, "ChapelArray._isPrivatized"]], "_makeindextuple() (in module chapelarray)": [[11, "ChapelArray._makeIndexTuple"]], "_newarray() (in module chapelarray)": [[11, "ChapelArray._newArray"]], "_newprivatizedclass() (in module chapelarray)": [[11, "ChapelArray._newPrivatizedClass"]], "_pid (chapelarray._array attribute)": [[11, "ChapelArray._array._pid"]], "_reprivatize() (in module chapelarray)": [[11, "ChapelArray._reprivatize"]], "_scan() (chapelarray._array method)": [[11, "ChapelArray._array._scan"]], "_telt (enum in chapelarray)": [[11, "ChapelArray._tElt"]], "_unowned (chapelarray._array attribute)": [[11, "ChapelArray._array._unowned"]], "_validrankchangeargs() (in module chapelarray)": [[11, "ChapelArray._validRankChangeArgs"]], "_value() (chapelarray._array method)": [[11, "ChapelArray._array._value"]], "arrayasvecgrowthfactor (in module chapelarray)": [[11, "ChapelArray.arrayAsVecGrowthFactor"]], "arrayliterallowbound (in module chapelarray)": [[11, "ChapelArray.arrayLiteralLowBound"]], "capturediteratorlowbound (in module chapelarray)": [[11, "ChapelArray.capturedIteratorLowBound"]], "checkaccess() (chapelarray._array method)": [[11, "ChapelArray._array.checkAccess"]], "checkarrayshapesuponassignment() (in module chapelarray)": [[11, "ChapelArray.checkArrayShapesUponAssignment"]], "checkrankchange() (chapelarray._array method)": [[11, "ChapelArray._array.checkRankChange"]], "checkslice() (chapelarray._array method)": [[11, "ChapelArray._array.checkSlice"]], "chpl__autocopy() (in module chapelarray)": [[11, "ChapelArray.chpl__autoCopy"]], "chpl__buildarrayexpr() (in module chapelarray)": [[11, "ChapelArray.chpl__buildArrayExpr"]], "chpl__buildarrayruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__buildArrayRuntimeType"]], "chpl__buildassociativearrayexpr() (in module chapelarray)": [[11, "ChapelArray.chpl__buildAssociativeArrayExpr"]], "chpl__builddistdmapvalue() (in module chapelarray)": [[11, "ChapelArray.chpl__buildDistDMapValue"]], "chpl__builddisttype() (in module chapelarray)": [[11, "ChapelArray.chpl__buildDistType"]], "chpl__builddistvalue() (in module chapelarray)": [[11, "ChapelArray.chpl__buildDistValue"]], "chpl__buildindextype() (in module chapelarray)": [[11, "ChapelArray.chpl__buildIndexType"]], "chpl__bulktransferarray() (in module chapelarray)": [[11, "ChapelArray.chpl__bulkTransferArray"]], "chpl__bulktransferptrarray() (in module chapelarray)": [[11, "ChapelArray.chpl__bulkTransferPtrArray"]], "chpl__checkoutelttypematch() (in module chapelarray)": [[11, "ChapelArray.chpl__checkOutEltTypeMatch"]], "chpl__checkretelttypematch() (in module chapelarray)": [[11, "ChapelArray.chpl__checkRetEltTypeMatch"]], "chpl__coercecopy() (in module chapelarray)": [[11, "ChapelArray.chpl__coerceCopy"]], "chpl__coercehelp() (in module chapelarray)": [[11, "ChapelArray.chpl__coerceHelp"]], "chpl__coercemove() (in module chapelarray)": [[11, "ChapelArray.chpl__coerceMove"]], "chpl__compatibleforbulktransfer() (in module chapelarray)": [[11, "ChapelArray.chpl__compatibleForBulkTransfer"]], "chpl__compatibleforwideptrbulktransfer() (in module chapelarray)": [[11, "ChapelArray.chpl__compatibleForWidePtrBulkTransfer"]], "chpl__convertruntimetypetovalue() (in module chapelarray)": [[11, "ChapelArray.chpl__convertRuntimeTypeToValue"]], "chpl__convertvaluetoruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__convertValueToRuntimeType"]], "chpl__countranges() (in module chapelarray)": [[11, "ChapelArray.chpl__countRanges"]], "chpl__deserialize() (chapelarray._array method)": [[11, "ChapelArray._array.chpl__deserialize"]], "chpl__distributed() (in module chapelarray)": [[11, "ChapelArray.chpl__distributed"]], "chpl__distributionfromdomainruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__distributionFromDomainRuntimeType"]], "chpl__elttypefromarrayruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__eltTypeFromArrayRuntimeType"]], "chpl__getactualarray() (in module chapelarray)": [[11, "ChapelArray.chpl__getActualArray"]], "chpl__getactualdomain() (in module chapelarray)": [[11, "ChapelArray.chpl__getActualDomain"]], "chpl__initafterbulktransfer() (in module chapelarray)": [[11, "ChapelArray.chpl__initAfterBulkTransfer"]], "chpl__initcopy() (in module chapelarray)": [[11, "ChapelArray.chpl__initCopy"]], "chpl__initcopy_shapehelp() (in module chapelarray)": [[11, "ChapelArray.chpl__initCopy_shapeHelp"]], "chpl__instancetypefromarrayruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__instanceTypeFromArrayRuntimeType"]], "chpl__instancetypefromdomainruntimetype() (in module chapelarray)": [[11, "ChapelArray.chpl__instanceTypeFromDomainRuntimeType"]], "chpl__isarrayview() (in module chapelarray)": [[11, "ChapelArray.chpl__isArrayView"]], "chpl__isdrordrview() (in module chapelarray)": [[11, "ChapelArray.chpl__isDROrDRView"]], "chpl__isdense1darray() (chapelarray._array method)": [[11, "ChapelArray._array.chpl__isDense1DArray"]], "chpl__isdomainview() (in module chapelarray)": [[11, "ChapelArray.chpl__isDomainView"]], "chpl__localslicedefaultaritharrhelp() (chapelarray._array method)": [[11, "ChapelArray._array.chpl__localSliceDefaultArithArrHelp"]], "chpl__promotiontype() (chapelarray._array method)": [[11, "ChapelArray._array.chpl__promotionType"]], "chpl__serialize() (chapelarray._array method)": [[11, "ChapelArray._array.chpl__serialize"]], "chpl__serializeassignment() (in module chapelarray)": [[11, "ChapelArray.chpl__serializeAssignment"]], "chpl__supporteddatatypeforbulktransfer() (in module chapelarray)": [[11, "ChapelArray.chpl__supportedDataTypeForBulkTransfer"]], "chpl__throwerrorunchecked() (in module chapelarray)": [[11, "ChapelArray.chpl__throwErrorUnchecked"]], "chpl__transferarray() (in module chapelarray)": [[11, "ChapelArray.chpl__transferArray"]], "chpl__uncheckedarraytransfer() (in module chapelarray)": [[11, "ChapelArray.chpl__uncheckedArrayTransfer"]], "chpl__unref() (in module chapelarray)": [[11, "ChapelArray.chpl__unref"]], "chpl_arraytoptr() (in module chapelarray)": [[11, "ChapelArray.chpl_arrayToPtr"]], "chpl_arraytoptrconst() (in module chapelarray)": [[11, "ChapelArray.chpl_arrayToPtrConst"]], "chpl_arraytoptrerrorhelper() (in module chapelarray)": [[11, "ChapelArray.chpl_arrayToPtrErrorHelper"]], "chpl_checkarrargdoms() (chapelarray._array method)": [[11, "ChapelArray._array.chpl_checkArrArgDoms"]], "chpl_computeunifiedtype() (in module chapelarray)": [[11, "ChapelArray.chpl_computeUnifiedType"]], "chpl_computeunifiedtypehelp() (in module chapelarray)": [[11, "ChapelArray.chpl_computeUnifiedTypeHelp"]], "chpl_decrefcountsfordomainsinarrayelttypes() (in module chapelarray)": [[11, "ChapelArray.chpl_decRefCountsForDomainsInArrayEltTypes"]], "chpl_defaultcomparator() (in module chapelarray)": [[11, "ChapelArray.chpl_defaultComparator"]], "chpl_increfcountsfordomainsinarrayelttypes() (in module chapelarray)": [[11, "ChapelArray.chpl_incRefCountsForDomainsInArrayEltTypes"]], "chpl_isnondistributedarray() (chapelarray._array method)": [[11, "ChapelArray._array.chpl_isNonDistributedArray"]], "count() (chapelarray._array method)": [[11, "ChapelArray._array.count"]], "debugarrayasvec (in module chapelarray)": [[11, "ChapelArray.debugArrayAsVec"]], "debugbulktransfer (in module chapelarray)": [[11, "ChapelArray.debugBulkTransfer"]], "debuglocalizedconstdomains (in module chapelarray)": [[11, "ChapelArray.debugLocalizedConstDomains"]], "debugoptimizedswap (in module chapelarray)": [[11, "ChapelArray.debugOptimizedSwap"]], "deinit() (chapelarray._array method)": [[11, "ChapelArray._array.deinit"]], "deserialize() (chapelarray._array method)": [[11, "ChapelArray._array.deserialize"]], "deserializefrom() (chapelarray._array method)": [[11, "ChapelArray._array.deserializeFrom"]], "dim() (chapelarray._array method)": [[11, "ChapelArray._array.dim"]], "dims() (chapelarray._array method)": [[11, "ChapelArray._array.dims"]], "disableconstdomainopt (in module chapelarray)": [[11, "ChapelArray.disableConstDomainOpt"]], "displayrepresentation() (chapelarray._array method)": [[11, "ChapelArray._array.displayRepresentation"]], "dmap (record in chapelarray)": [[11, "ChapelArray.dmap"]], "elttype() (chapelarray._array method)": [[11, "ChapelArray._array.eltType"]], "equals() (chapelarray._array method)": [[11, "ChapelArray._array.equals"]], "find() (chapelarray._array method)": [[11, "ChapelArray._array.find"]], "first() (chapelarray._array method)": [[11, "ChapelArray._array.first"]], "fullidxtype() (chapelarray._array method)": [[11, "ChapelArray._array.fullIdxType"]], "hasposnegunitstride() (chapelarray._array method)": [[11, "ChapelArray._array.hasPosNegUnitStride"]], "hassinglelocalsubdomain() (chapelarray._array method)": [[11, "ChapelArray._array.hasSingleLocalSubdomain"]], "hasunitstride() (chapelarray._array method)": [[11, "ChapelArray._array.hasUnitStride"]], "idxtype() (chapelarray._array method)": [[11, "ChapelArray._array.idxType"]], "indices() (chapelarray._array iterator)": [[11, "ChapelArray._array.indices"]], "indices() (chapelarray._array method)": [[11, "ChapelArray._array.indices"]], "isassociative() (chapelarray._array method)": [[11, "ChapelArray._array.isAssociative"]], "iscollapseddimension() (in module chapelarray)": [[11, "ChapelArray.isCollapsedDimension"]], "isempty() (chapelarray._array method)": [[11, "ChapelArray._array.isEmpty"]], "isirregular() (chapelarray._array method)": [[11, "ChapelArray._array.isIrregular"]], "isrectangular() (chapelarray._array method)": [[11, "ChapelArray._array.isRectangular"]], "issparse() (chapelarray._array method)": [[11, "ChapelArray._array.isSparse"]], "iteratoryieldslocalelements() (chapelarray._array method)": [[11, "ChapelArray._array.iteratorYieldsLocalElements"]], "last() (chapelarray._array method)": [[11, "ChapelArray._array.last"]], "linearize() (in module chapelarray)": [[11, "ChapelArray.linearize"]], "localaccess() (chapelarray._array method)": [[11, "ChapelArray._array.localAccess"]], "localslice() (chapelarray._array method)": [[11, "ChapelArray._array.localSlice"]], "localsubdomain() (chapelarray._array method)": [[11, "ChapelArray._array.localSubdomain"]], "localsubdomains() (chapelarray._array iterator)": [[11, "ChapelArray._array.localSubdomains"]], "localizeconstdomains (in module chapelarray)": [[11, "ChapelArray.localizeConstDomains"]], "logallarreltaccess (in module chapelarray)": [[11, "ChapelArray.logAllArrEltAccess"]], "logdistarreltaccess (in module chapelarray)": [[11, "ChapelArray.logDistArrEltAccess"]], "nullpid (in module chapelarray)": [[11, "ChapelArray.nullPid"]], "numprivateobjects (in module chapelarray)": [[11, "ChapelArray.numPrivateObjects"]], "rank() (chapelarray._array method)": [[11, "ChapelArray._array.rank"]], "reindex() (chapelarray._array method)": [[11, "ChapelArray._array.reindex"]], "reshape() (in module chapelarray)": [[11, "ChapelArray.reshape"]], "serialize() (chapelarray._array method)": [[11, "ChapelArray._array.serialize"]], "shape() (chapelarray._array method)": [[11, "ChapelArray._array.shape"]], "shouldreturnrvaluebyvalue() (in module chapelarray)": [[11, "ChapelArray.shouldReturnRvalueByValue"]], "size() (chapelarray._array method)": [[11, "ChapelArray._array.size"]], "sizeas() (chapelarray._array method)": [[11, "ChapelArray._array.sizeAs"]], "strides() (chapelarray._array method)": [[11, "ChapelArray._array.strides"]], "targetlocales() (chapelarray._array method)": [[11, "ChapelArray._array.targetLocales"]], "these() (chapelarray._array iterator)": [[11, "ChapelArray._array.these"]], "this() (chapelarray._array method)": [[11, "ChapelArray._array.this"]], "trycopy() (chapelarray._array method)": [[11, "ChapelArray._array.tryCopy"]], "usebulkptrtransfer (in module chapelarray)": [[11, "ChapelArray.useBulkPtrTransfer"]], "usebulktransfer (in module chapelarray)": [[11, "ChapelArray.useBulkTransfer"]], "usebulktransferdist (in module chapelarray)": [[11, "ChapelArray.useBulkTransferDist"]], "usebulktransferstride (in module chapelarray)": [[11, "ChapelArray.useBulkTransferStride"]], "|=() (in module chapelarray)": [[11, "ChapelArray.|="]], ":() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.:"]], "==() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.=="]], "_value() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice._value"]], "chpl__ave_exprcanbeprotoslice() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.chpl__ave_exprCanBeProtoSlice"]], "chpl__ave_protoslicessupportassignment() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.chpl__ave_protoSlicesSupportAssignment"]], "chpl__createconstprotoslice() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.chpl__createConstProtoSlice"]], "chpl__createprotoslice() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.chpl__createProtoSlice"]], "chpl__protoslice (record in chapelarrayviewelision)": [[12, "ChapelArrayViewElision.chpl__protoSlice"]], "dims() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.dims"]], "domorrange() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.domOrRange"]], "elttype() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.eltType"]], "init() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.init"]], "init=() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.init="]], "isconst (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.isConst"]], "isprotoslice() (in module chapelarrayviewelision)": [[12, "ChapelArrayViewElision.isProtoSlice"]], "isrankchange (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.isRankChange"]], "isrectangular() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.isRectangular"]], "ptrtoarr (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.ptrToArr"]], "ranges (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.ranges"]], "rank (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.rank"]], "rank() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.rank"]], "sizeas() (chapelarrayviewelision.chpl__protoslice method)": [[12, "ChapelArrayViewElision.chpl__protoSlice.sizeAs"]], "slicingexprtype (chapelarrayviewelision.chpl__protoslice attribute)": [[12, "ChapelArrayViewElision.chpl__protoSlice.slicingExprType"]], "these() (chapelarrayviewelision.chpl__protoslice iterator)": [[12, "ChapelArrayViewElision.chpl__protoSlice.these"]], "chpl__arrayiteratoryieldslocalelements() (in module chapelautoaggregation)": [[13, "ChapelAutoAggregation.chpl__arrayIteratorYieldsLocalElements"]], "chpl_dstaggregatorfor() (in module chapelautoaggregation)": [[13, "ChapelAutoAggregation.chpl_dstAggregatorFor"]], "chpl_srcaggregatorfor() (in module chapelautoaggregation)": [[13, "ChapelAutoAggregation.chpl_srcAggregatorFor"]], "chpl__ala_offsetcheck() (in module chapelautolocalaccess)": [[14, "ChapelAutoLocalAccess.chpl__ala_offsetCheck"]], "chpl__dynamicautolocalcheck() (in module chapelautolocalaccess)": [[14, "ChapelAutoLocalAccess.chpl__dynamicAutoLocalCheck"]], "chpl__isarrayviewwithdifferentdist() (in module chapelautolocalaccess)": [[14, "ChapelAutoLocalAccess.chpl__isArrayViewWithDifferentDist"]], "chpl__staticautolocalcheck() (in module chapelautolocalaccess)": [[14, "ChapelAutoLocalAccess.chpl__staticAutoLocalCheck"]], "!() (in module chapelbase)": [[15, "ChapelBase.!"]], "!=() (in module chapelbase)": [[15, "ChapelBase.!="]], "%() (in module chapelbase)": [[15, "ChapelBase.%"]], "%=() (in module chapelbase)": [[15, "ChapelBase.%="]], "&() (in module chapelbase)": [[15, "ChapelBase.&"]], "&=() (in module chapelbase)": [[15, "ChapelBase.&="]], "*() (in module chapelbase)": [[15, "ChapelBase.*"]], "**() (in module chapelbase)": [[15, "ChapelBase.**"]], "**=() (in module chapelbase)": [[15, "ChapelBase.**="]], "*=() (in module chapelbase)": [[15, "ChapelBase.*="]], "+() (in module chapelbase)": [[15, "ChapelBase.+"]], "+=() (in module chapelbase)": [[15, "ChapelBase.+="]], "-() (in module chapelbase)": [[15, "ChapelBase.-"]], "-=() (in module chapelbase)": [[15, "ChapelBase.-="]], "/() (in module chapelbase)": [[15, "ChapelBase./"]], "/=() (in module chapelbase)": [[15, "ChapelBase./="]], ":() (in module chapelbase)": [[15, "ChapelBase.:"]], "<() (in module chapelbase)": [[15, "ChapelBase.<"]], "<<() (in module chapelbase)": [[15, "ChapelBase.<<"]], "<<=() (in module chapelbase)": [[15, "ChapelBase.<<="]], "<=() (in module chapelbase)": [[15, "ChapelBase.<="]], "<=>() (in module chapelbase)": [[15, "ChapelBase.<=>"]], "=() (chapelbase.c_fn_ptr method)": [[15, "ChapelBase.c_fn_ptr.="]], "=() (in module chapelbase)": [[15, "ChapelBase.="]], "==() (in module chapelbase)": [[15, "ChapelBase.=="]], ">() (in module chapelbase)": [[15, "ChapelBase.>"]], ">=() (in module chapelbase)": [[15, "ChapelBase.>="]], ">>() (in module chapelbase)": [[15, "ChapelBase.>>"]], ">>=() (in module chapelbase)": [[15, "ChapelBase.>>="]], "arrayinit (enum in chapelbase)": [[15, "ChapelBase.ArrayInit"]], "qio_aggregate_format_braces (in module chapelbase)": [[15, "ChapelBase.QIO_AGGREGATE_FORMAT_BRACES"]], "qio_aggregate_format_chpl (in module chapelbase)": [[15, "ChapelBase.QIO_AGGREGATE_FORMAT_CHPL"]], "qio_aggregate_format_json (in module chapelbase)": [[15, "ChapelBase.QIO_AGGREGATE_FORMAT_JSON"]], "qio_array_format_chpl (in module chapelbase)": [[15, "ChapelBase.QIO_ARRAY_FORMAT_CHPL"]], "qio_array_format_json (in module chapelbase)": [[15, "ChapelBase.QIO_ARRAY_FORMAT_JSON"]], "qio_array_format_space (in module chapelbase)": [[15, "ChapelBase.QIO_ARRAY_FORMAT_SPACE"]], "qio_style_element_aggregate (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_AGGREGATE"]], "qio_style_element_array (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_ARRAY"]], "qio_style_element_byte_order (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_BYTE_ORDER"]], "qio_style_element_complex (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_COMPLEX"]], "qio_style_element_is_native_byte_order (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_IS_NATIVE_BYTE_ORDER"]], "qio_style_element_skip_unknown_fields (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_SKIP_UNKNOWN_FIELDS"]], "qio_style_element_string (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_STRING"]], "qio_style_element_tuple (in module chapelbase)": [[15, "ChapelBase.QIO_STYLE_ELEMENT_TUPLE"]], "qio_tuple_format_chpl (in module chapelbase)": [[15, "ChapelBase.QIO_TUPLE_FORMAT_CHPL"]], "qio_tuple_format_json (in module chapelbase)": [[15, "ChapelBase.QIO_TUPLE_FORMAT_JSON"]], "qio_tuple_format_space (in module chapelbase)": [[15, "ChapelBase.QIO_TUPLE_FORMAT_SPACE"]], "^() (in module chapelbase)": [[15, "ChapelBase.^"]], "^=() (in module chapelbase)": [[15, "ChapelBase.^="]], "_endcount (class in chapelbase)": [[15, "ChapelBase._EndCount"]], "_endcountbase (class in chapelbase)": [[15, "ChapelBase._EndCountBase"]], "_basepowertwo() (in module chapelbase)": [[15, "ChapelBase._basePowerTwo"]], "_canoptimizeexp() (in module chapelbase)": [[15, "ChapelBase._canOptimizeExp"]], "_cond_invalid() (in module chapelbase)": [[15, "ChapelBase._cond_invalid"]], "_cond_test() (in module chapelbase)": [[15, "ChapelBase._cond_test"]], "_ddata (class in chapelbase)": [[15, "ChapelBase._ddata"]], "_ddata_allocate() (in module chapelbase)": [[15, "ChapelBase._ddata_allocate"]], "_ddata_allocate_noinit() (in module chapelbase)": [[15, "ChapelBase._ddata_allocate_noinit"]], "_ddata_allocate_noinit_gpu_shared() (in module chapelbase)": [[15, "ChapelBase._ddata_allocate_noinit_gpu_shared"]], "_ddata_allocate_postalloc() (in module chapelbase)": [[15, "ChapelBase._ddata_allocate_postalloc"]], "_ddata_fill() (in module chapelbase)": [[15, "ChapelBase._ddata_fill"]], "_ddata_free() (in module chapelbase)": [[15, "ChapelBase._ddata_free"]], "_ddata_reallocate() (in module chapelbase)": [[15, "ChapelBase._ddata_reallocate"]], "_ddata_shift() (in module chapelbase)": [[15, "ChapelBase._ddata_shift"]], "_ddata_sizeof_element() (in module chapelbase)": [[15, "ChapelBase._ddata_sizeof_element"]], "_ddata_supports_reallocate() (in module chapelbase)": [[15, "ChapelBase._ddata_supports_reallocate"]], "_downdynamicendcount() (in module chapelbase)": [[15, "ChapelBase._downDynamicEndCount"]], "_downendcount() (in module chapelbase)": [[15, "ChapelBase._downEndCount"]], "_endcountalloc() (in module chapelbase)": [[15, "ChapelBase._endCountAlloc"]], "_endcountfree() (in module chapelbase)": [[15, "ChapelBase._endCountFree"]], "_expbasehelp() (in module chapelbase)": [[15, "ChapelBase._expBaseHelp"]], "_exphelp() (in module chapelbase)": [[15, "ChapelBase._expHelp"]], "_i2r() (in module chapelbase)": [[15, "ChapelBase._i2r"]], "_intexphelp() (in module chapelbase)": [[15, "ChapelBase._intExpHelp"]], "_object (class in chapelbase)": [[15, "ChapelBase._object"]], "_r2i() (in module chapelbase)": [[15, "ChapelBase._r2i"]], "_ref (class in chapelbase)": [[15, "ChapelBase._ref"]], "_remoteendcounttype (in module chapelbase)": [[15, "ChapelBase._remoteEndCountType"]], "_removed_cast() (in module chapelbase)": [[15, "ChapelBase._removed_cast"]], "_to_borrowed() (in module chapelbase)": [[15, "ChapelBase._to_borrowed"]], "_to_nilable() (in module chapelbase)": [[15, "ChapelBase._to_nilable"]], "_to_nonnil() (in module chapelbase)": [[15, "ChapelBase._to_nonnil"]], "_to_unmanaged() (in module chapelbase)": [[15, "ChapelBase._to_unmanaged"]], "_try_ddata_allocate() (in module chapelbase)": [[15, "ChapelBase._try_ddata_allocate"]], "_updynamicendcount() (in module chapelbase)": [[15, "ChapelBase._upDynamicEndCount"]], "_upendcount() (in module chapelbase)": [[15, "ChapelBase._upEndCount"]], "_val (chapelbase._ref attribute)": [[15, "ChapelBase._ref._val"]], "_waitendcount() (in module chapelbase)": [[15, "ChapelBase._waitEndCount"]], "add() (chapelbase._endcount method)": [[15, "ChapelBase._EndCount.add"]], "assocparsafedefault (in module chapelbase)": [[15, "ChapelBase.assocParSafeDefault"]], "bitshiftchecks() (in module chapelbase)": [[15, "ChapelBase.bitshiftChecks"]], "c_fn_ptr (in module chapelbase)": [[15, "ChapelBase.c_fn_ptr"]], "c_string (in module chapelbase)": [[15, "ChapelBase.c_string"]], "chpl_moduledeinit (class in chapelbase)": [[15, "ChapelBase.chpl_ModuleDeinit"]], "chpl__autocopy() (in module chapelbase)": [[15, "ChapelBase.chpl__autoCopy"]], "chpl__autodestroy() (in module chapelbase)": [[15, "ChapelBase.chpl__autoDestroy"]], "chpl__bothlocal() (in module chapelbase)": [[15, "ChapelBase.chpl__bothLocal"]], "chpl__delete() (in module chapelbase)": [[15, "ChapelBase.chpl__delete"]], "chpl__initcopy() (in module chapelbase)": [[15, "ChapelBase.chpl__initCopy"]], "chpl__unref() (in module chapelbase)": [[15, "ChapelBase.chpl__unref"]], "chpl_after_forall_fence() (in module chapelbase)": [[15, "ChapelBase.chpl_after_forall_fence"]], "chpl_arrayinitmethodruntimeselectable (in module chapelbase)": [[15, "ChapelBase.chpl_arrayInitMethodRuntimeSelectable"]], "chpl_boundedcoforallsize() (in module chapelbase)": [[15, "ChapelBase.chpl_boundedCoforallSize"]], "chpl_castunmanagederror() (in module chapelbase)": [[15, "ChapelBase.chpl_castUnmanagedError"]], "chpl_checkborrowifvar() (in module chapelbase)": [[15, "ChapelBase.chpl_checkBorrowIfVar"]], "chpl_checkcastabstractenumerror() (in module chapelbase)": [[15, "ChapelBase.chpl_checkCastAbstractEnumError"]], "chpl_checklegaltypefieldaccessor() (in module chapelbase)": [[15, "ChapelBase.chpl_checkLegalTypeFieldAccessor"]], "chpl_comm_task_create() (in module chapelbase)": [[15, "ChapelBase.chpl_comm_task_create"]], "chpl_comm_task_end() (in module chapelbase)": [[15, "ChapelBase.chpl_comm_task_end"]], "chpl_comm_unordered_task_fence() (in module chapelbase)": [[15, "ChapelBase.chpl_comm_unordered_task_fence"]], "chpl_config_get_value() (in module chapelbase)": [[15, "ChapelBase.chpl_config_get_value"]], "chpl_config_has_value() (in module chapelbase)": [[15, "ChapelBase.chpl_config_has_value"]], "chpl_ddataresizepolicy (enum in chapelbase)": [[15, "ChapelBase.chpl_ddataResizePolicy"]], "chpl_defaultarrayinitmethod (in module chapelbase)": [[15, "ChapelBase.chpl_defaultArrayInitMethod"]], "chpl_defaultgpuarrayinitmethod (in module chapelbase)": [[15, "ChapelBase.chpl_defaultGpuArrayInitMethod"]], "chpl_field_gt() (in module chapelbase)": [[15, "ChapelBase.chpl_field_gt"]], "chpl_field_lt() (in module chapelbase)": [[15, "ChapelBase.chpl_field_lt"]], "chpl_field_neq() (in module chapelbase)": [[15, "ChapelBase.chpl_field_neq"]], "chpl_getarrayinitmethod() (in module chapelbase)": [[15, "ChapelBase.chpl_getArrayInitMethod"]], "chpl_isddata() (in module chapelbase)": [[15, "ChapelBase.chpl_isDdata"]], "chpl_mem_descint_t (in module chapelbase)": [[15, "ChapelBase.chpl_mem_descInt_t"]], "chpl_moduledeinitfuns (in module chapelbase)": [[15, "ChapelBase.chpl_moduleDeinitFuns"]], "chpl_resettaskspawn() (in module chapelbase)": [[15, "ChapelBase.chpl_resetTaskSpawn"]], "chpl_rt_reset_task_spawn() (in module chapelbase)": [[15, "ChapelBase.chpl_rt_reset_task_spawn"]], "chpl_setarrayinitmethod() (in module chapelbase)": [[15, "ChapelBase.chpl_setArrayInitMethod"]], "chpl_shoulddogpuinit() (in module chapelbase)": [[15, "ChapelBase.chpl_shouldDoGpuInit"]], "chpl_statementlevelsymbol() (in module chapelbase)": [[15, "ChapelBase.chpl_statementLevelSymbol"]], "chpl_stringminallocsize (in module chapelbase)": [[15, "ChapelBase.chpl_stringMinAllocSize"]], "chpl_supportsboundedcoforall() (in module chapelbase)": [[15, "ChapelBase.chpl_supportsBoundedCoforall"]], "chpl_typesupportsprimitivecast() (in module chapelbase)": [[15, "ChapelBase.chpl_typeSupportsPrimitiveCast"]], "chpl_unstableinternalsymbolfortesting (in module chapelbase)": [[15, "ChapelBase.chpl_unstableInternalSymbolForTesting"]], "chpl_waitdynamicendcount() (in module chapelbase)": [[15, "ChapelBase.chpl_waitDynamicEndCount"]], "commdiagstrackendcounts (in module chapelbase)": [[15, "ChapelBase.commDiagsTrackEndCounts"]], "defaultatomictaskcount() (in module chapelbase)": [[15, "ChapelBase.defaultAtomicTaskCount"]], "defaultlowbound (in module chapelbase)": [[15, "ChapelBase.defaultLowBound"]], "deinitfun (chapelbase.chpl_moduledeinit attribute)": [[15, "ChapelBase.chpl_ModuleDeinit.deinitFun"]], "elttype (chapelbase._ddata attribute)": [[15, "ChapelBase._ddata.eltType"]], "enablepostfixbangchecks (in module chapelbase)": [[15, "ChapelBase.enablePostfixBangChecks"]], "endcountdiagsmanager (record in chapelbase)": [[15, "ChapelBase.endCountDiagsManager"]], "entercontext() (chapelbase.endcountdiagsmanager method)": [[15, "ChapelBase.endCountDiagsManager.enterContext"]], "errors (chapelbase._endcountbase attribute)": [[15, "ChapelBase._EndCountBase.errors"]], "exitcontext() (chapelbase.endcountdiagsmanager method)": [[15, "ChapelBase.endCountDiagsManager.exitContext"]], "fcfsusepointerimplementation (in module chapelbase)": [[15, "ChapelBase.fcfsUsePointerImplementation"]], "func() (in module chapelbase)": [[15, "ChapelBase.func"]], "i (chapelbase._endcount attribute)": [[15, "ChapelBase._EndCount.i"]], "itype (chapelbase._endcount attribute)": [[15, "ChapelBase._EndCount.iType"]], "im() (chapelbase.chpl_anycomplex method)": [[15, "ChapelBase.chpl_anycomplex.im"]], "init() (chapelbase._endcount method)": [[15, "ChapelBase._EndCount.init"]], "init_elts() (in module chapelbase)": [[15, "ChapelBase.init_elts"]], "init_elts_method() (in module chapelbase)": [[15, "ChapelBase.init_elts_method"]], "isborrowedorunmanagedclasstype() (in module chapelbase)": [[15, "ChapelBase.isBorrowedOrUnmanagedClassType"]], "isgenerictype() (in module chapelbase)": [[15, "ChapelBase.isGenericType"]], "isiterator() (in module chapelbase)": [[15, "ChapelBase.isIterator"]], "isnilableclasstype() (in module chapelbase)": [[15, "ChapelBase.isNilableClassType"]], "isnonnilableclasstype() (in module chapelbase)": [[15, "ChapelBase.isNonNilableClassType"]], "isnonnegative() (in module chapelbase)": [[15, "ChapelBase.isNonnegative"]], "istrue() (in module chapelbase)": [[15, "ChapelBase.isTrue"]], "iterkind (enum in chapelbase)": [[15, "ChapelBase.iterKind"]], "modulename (chapelbase.chpl_moduledeinit attribute)": [[15, "ChapelBase.chpl_ModuleDeinit.moduleName"]], "noparsafewarning (in module chapelbase)": [[15, "ChapelBase.noParSafeWarning"]], "object (class in chapelbase)": [[15, "ChapelBase.object"]], "param() (in module chapelbase)": [[15, "ChapelBase.param"]], "prevdiagsdisabledval (chapelbase.endcountdiagsmanager attribute)": [[15, "ChapelBase.endCountDiagsManager.prevDiagsDisabledVal"]], "prevmodule (chapelbase.chpl_moduledeinit attribute)": [[15, "ChapelBase.chpl_ModuleDeinit.prevModule"]], "proc() (in module chapelbase)": [[15, "ChapelBase.proc"]], "re() (chapelbase.chpl_anycomplex method)": [[15, "ChapelBase.chpl_anycomplex.re"]], "rootlocaleinitialized (in module chapelbase)": [[15, "ChapelBase.rootLocaleInitialized"]], "serialize() (chapelbase.chpl_moduledeinit method)": [[15, "ChapelBase.chpl_ModuleDeinit.serialize"]], "sub() (chapelbase._endcount method)": [[15, "ChapelBase._EndCount.sub"]], "taskcnt (chapelbase._endcount attribute)": [[15, "ChapelBase._EndCount.taskCnt"]], "taskinfo (chapelbase.endcountdiagsmanager attribute)": [[15, "ChapelBase.endCountDiagsManager.taskInfo"]], "tasktype (chapelbase._endcount attribute)": [[15, "ChapelBase._EndCount.taskType"]], "this() (chapelbase._ddata method)": [[15, "ChapelBase._ddata.this"]], "this() (chapelbase.c_fn_ptr method)": [[15, "ChapelBase.c_fn_ptr.this"]], "useatomictaskcnt (in module chapelbase)": [[15, "ChapelBase.useAtomicTaskCnt"]], "waitfor() (chapelbase._endcount method)": [[15, "ChapelBase._EndCount.waitFor"]], "warnmaximalrange (in module chapelbase)": [[15, "ChapelBase.warnMaximalRange"]], "|() (in module chapelbase)": [[15, "ChapelBase.|"]], "|=() (in module chapelbase)": [[15, "ChapelBase.|="]], "~() (in module chapelbase)": [[15, "ChapelBase.~"]], "yieldexecution() (in module currenttask)": [[16, "currentTask.yieldExecution"]], "chpl__verifytypecontext() (in module chapelcontext)": [[17, "ChapelContext.chpl__verifyTypeContext"]], "chpl__testpar() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testPar"]], "chpl__testparflag (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testParFlag"]], "chpl__testparon (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testParOn"]], "chpl__testparstart() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testParStart"]], "chpl__testparstop() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testParStop"]], "chpl__testparwriteln() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl__testParWriteln"]], "chpl_debug_stringify() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl_debug_stringify"]], "chpl_debug_writeln() (in module chapeldebugprint)": [[18, "ChapelDebugPrint.chpl_debug_writeln"]], "absbasearr (class in chapeldistribution)": [[19, "ChapelDistribution.AbsBaseArr"]], "basearr (class in chapeldistribution)": [[19, "ChapelDistribution.BaseArr"]], "basearroverrectangulardom (class in chapeldistribution)": [[19, "ChapelDistribution.BaseArrOverRectangularDom"]], "baseassociativedom (class in chapeldistribution)": [[19, "ChapelDistribution.BaseAssociativeDom"]], "basedist (class in chapeldistribution)": [[19, "ChapelDistribution.BaseDist"]], "basedom (class in chapeldistribution)": [[19, "ChapelDistribution.BaseDom"]], "baserectangulararr (class in chapeldistribution)": [[19, "ChapelDistribution.BaseRectangularArr"]], "baserectangulardom (class in chapeldistribution)": [[19, "ChapelDistribution.BaseRectangularDom"]], "basesparsearr (class in chapeldistribution)": [[19, "ChapelDistribution.BaseSparseArr"]], "basesparsearrimpl (class in chapeldistribution)": [[19, "ChapelDistribution.BaseSparseArrImpl"]], "basesparsedom (class in chapeldistribution)": [[19, "ChapelDistribution.BaseSparseDom"]], "basesparsedomimpl (class in chapeldistribution)": [[19, "ChapelDistribution.BaseSparseDomImpl"]], "irv() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.IRV"]], "sparseindexbuffer (record in chapeldistribution)": [[19, "ChapelDistribution.SparseIndexBuffer"]], "__getactualinsertpts() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.__getActualInsertPts"]], "_arrs() (chapeldistribution.basedom iterator)": [[19, "ChapelDistribution.BaseDom._arrs"]], "_arrslock (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom._arrsLock"]], "_arrs_containing_dom (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom._arrs_containing_dom"]], "_arrs_head (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom._arrs_head"]], "_bulkgrow() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl._bulkGrow"]], "_countduplicates() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl._countDuplicates"]], "_deceltrefcounts (chapeldistribution.basearr attribute)": [[19, "ChapelDistribution.BaseArr._decEltRefCounts"]], "_defaultinitslot() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._defaultInitSlot"]], "_deinitslot() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._deinitSlot"]], "_delete_arr() (in module chapeldistribution)": [[19, "ChapelDistribution._delete_arr"]], "_delete_dist() (in module chapeldistribution)": [[19, "ChapelDistribution._delete_dist"]], "_delete_dom() (in module chapeldistribution)": [[19, "ChapelDistribution._delete_dom"]], "_distribution (record in chapeldistribution)": [[19, "ChapelDistribution._distribution"]], "_do_destroy() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution._do_destroy"]], "_domslock (chapeldistribution.basedist attribute)": [[19, "ChapelDistribution.BaseDist._domsLock"]], "_doms_containing_dist (chapeldistribution.basedist attribute)": [[19, "ChapelDistribution.BaseDist._doms_containing_dist"]], "_finishrehash() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._finishRehash"]], "_free_when_no_arrs (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom._free_when_no_arrs"]], "_free_when_no_doms (chapeldistribution.basedist attribute)": [[19, "ChapelDistribution.BaseDist._free_when_no_doms"]], "_grow() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl._grow"]], "_instance (chapeldistribution._distribution attribute)": [[19, "ChapelDistribution._distribution._instance"]], "_moveelementduringrehash() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._moveElementDuringRehash"]], "_pid (chapeldistribution._distribution attribute)": [[19, "ChapelDistribution._distribution._pid"]], "_purge() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._purge"]], "_resize() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._resize"]], "_resizepolicy (chapeldistribution.basearr attribute)": [[19, "ChapelDistribution.BaseArr._resizePolicy"]], "_shrink() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl._shrink"]], "_startrehash() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr._startRehash"]], "_unowned (chapeldistribution._distribution attribute)": [[19, "ChapelDistribution._distribution._unowned"]], "_value() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution._value"]], "add() (chapeldistribution.sparseindexbuffer method)": [[19, "ChapelDistribution.SparseIndexBuffer.add"]], "add_arr() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.add_arr"]], "add_containing_arr() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.add_containing_arr"]], "add_dom() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.add_dom"]], "boundscheck() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.boundsCheck"]], "buf (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.buf"]], "bufdom (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.bufDom"]], "bulkadd_help() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.bulkAdd_help"]], "bulkadd_prepareinds() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.bulkAdd_prepareInds"]], "candodirectassignment() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.canDoDirectAssignment"]], "chpl__rvfme() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl__rvfMe"]], "chpl_assigndomainwithgetsetindices() (in module chapeldistribution)": [[19, "ChapelDistribution.chpl_assignDomainWithGetSetIndices"]], "chpl_assigndomainwithindsitersafeforremoving() (in module chapeldistribution)": [[19, "ChapelDistribution.chpl_assignDomainWithIndsIterSafeForRemoving"]], "chpl_iselementtypedefaultinitializable() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl_isElementTypeDefaultInitializable"]], "chpl_iselementtypedefaultinitializable() (chapeldistribution.baserectangulararr method)": [[19, "ChapelDistribution.BaseRectangularArr.chpl_isElementTypeDefaultInitializable"]], "chpl_iselementtypenonnilableclass() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl_isElementTypeNonNilableClass"]], "chpl_iselementtypenonnilableclass() (chapeldistribution.baserectangulararr method)": [[19, "ChapelDistribution.BaseRectangularArr.chpl_isElementTypeNonNilableClass"]], "chpl_setresizepolicy() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl_setResizePolicy"]], "chpl_unsafeassignhaltuninitializedelement() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl_unsafeAssignHaltUninitializedElement"]], "chpl_unsafeassignhaltuninitializedelement() (chapeldistribution.baserectangulararr method)": [[19, "ChapelDistribution.BaseRectangularArr.chpl_unsafeAssignHaltUninitializedElement"]], "chpl_unsafeassignisclasselementnil() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.chpl_unsafeAssignIsClassElementNil"]], "clone() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.clone"]], "commit() (chapeldistribution.sparseindexbuffer method)": [[19, "ChapelDistribution.SparseIndexBuffer.commit"]], "cur (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.cur"]], "data (chapeldistribution.basesparsearrimpl attribute)": [[19, "ChapelDistribution.BaseSparseArrImpl.data"]], "deceltcountsifneeded() (chapeldistribution.absbasearr method)": [[19, "ChapelDistribution.AbsBaseArr.decEltCountsIfNeeded"]], "deceltcountsifneeded() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.decEltCountsIfNeeded"]], "deceltcountsifneeded() (chapeldistribution.baserectangulararr method)": [[19, "ChapelDistribution.BaseRectangularArr.decEltCountsIfNeeded"]], "definedconst (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom.definedConst"]], "deinit() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.deinit"]], "deinit() (chapeldistribution.basearroverrectangulardom method)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.deinit"]], "deinit() (chapeldistribution.baseassociativedom method)": [[19, "ChapelDistribution.BaseAssociativeDom.deinit"]], "deinit() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.deinit"]], "deinit() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.deinit"]], "deinit() (chapeldistribution.baserectangulararr method)": [[19, "ChapelDistribution.BaseRectangularArr.deinit"]], "deinit() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.deinit"]], "deinit() (chapeldistribution.basesparsearr method)": [[19, "ChapelDistribution.BaseSparseArr.deinit"]], "deinit() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.deinit"]], "deinit() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.deinit"]], "deinit() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.deinit"]], "deinit() (chapeldistribution.sparseindexbuffer method)": [[19, "ChapelDistribution.SparseIndexBuffer.deinit"]], "deinit() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.deinit"]], "deserialize() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.deserialize"]], "deserializefrom() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.deserializeFrom"]], "displayrepresentation() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.displayRepresentation"]], "dnserror() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dnsError"]], "doicanbulktransferrankchange() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.doiCanBulkTransferRankChange"]], "dom (chapeldistribution.basesparsearr attribute)": [[19, "ChapelDistribution.BaseSparseArr.dom"]], "dsiadd() (chapeldistribution.baseassociativedom method)": [[19, "ChapelDistribution.BaseAssociativeDom.dsiAdd"]], "dsiadd() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.dsiAdd"]], "dsialignedhigh() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiAlignedHigh"]], "dsialignedhigh() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiAlignedHigh"]], "dsialignedlow() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiAlignedLow"]], "dsialignedlow() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiAlignedLow"]], "dsialignment() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiAlignment"]], "dsialignment() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiAlignment"]], "dsiautolocalaccessoffsetcheck() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiAutoLocalAccessOffsetCheck"]], "dsibulkadd() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiBulkAdd"]], "dsibulkadd() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.dsiBulkAdd"]], "dsibulkaddnopreserveinds() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiBulkAddNoPreserveInds"]], "dsibulkaddnopreserveinds() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.dsiBulkAddNoPreserveInds"]], "dsiclear() (chapeldistribution.baseassociativedom method)": [[19, "ChapelDistribution.BaseAssociativeDom.dsiClear"]], "dsiclear() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiClear"]], "dsiclear() (chapeldistribution.basesparsedomimpl method)": [[19, "ChapelDistribution.BaseSparseDomImpl.dsiClear"]], "dsicreateindexbuffer() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiCreateIndexBuffer"]], "dsicreateindexbuffer() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiCreateIndexBuffer"]], "dsidestroyarr() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiDestroyArr"]], "dsidestroyarr() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.dsiDestroyArr"]], "dsidestroydist() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiDestroyDist"]], "dsidestroydom() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiDestroyDom"]], "dsidim() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiDim"]], "dsidims() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiDims"]], "dsidisplayrepresentation() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiDisplayRepresentation"]], "dsidisplayrepresentation() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiDisplayRepresentation"]], "dsidisplayrepresentation() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiDisplayRepresentation"]], "dsielementdeinitializationcomplete() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiElementDeinitializationComplete"]], "dsielementdeinitializationcomplete() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.dsiElementDeinitializationComplete"]], "dsielementinitializationcomplete() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiElementInitializationComplete"]], "dsielementinitializationcomplete() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.dsiElementInitializationComplete"]], "dsifirst() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiFirst"]], "dsifirst() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiFirst"]], "dsigetbasedom() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiGetBaseDom"]], "dsigetbasedom() (chapeldistribution.basesparsearr method)": [[19, "ChapelDistribution.BaseSparseArr.dsiGetBaseDom"]], "dsihigh() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiHigh"]], "dsihigh() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiHigh"]], "dsiindexorder() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiIndexOrder"]], "dsiislayout() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiIsLayout"]], "dsiiteratoryieldslocalelements() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiIteratorYieldsLocalElements"]], "dsiiteratoryieldslocalelements() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiIteratorYieldsLocalElements"]], "dsilast() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiLast"]], "dsilast() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiLast"]], "dsilinksdistribution() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiLinksDistribution"]], "dsilow() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiLow"]], "dsilow() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiLow"]], "dsimydist() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiMyDist"]], "dsinewassociativedom() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiNewAssociativeDom"]], "dsinewrectangulardom() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiNewRectangularDom"]], "dsinewsparsedom() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiNewSparseDom"]], "dsinumindices() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiNumIndices"]], "dsipostreallocate() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiPostReallocate"]], "dsipostreallocate() (chapeldistribution.basearroverrectangulardom method)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.dsiPostReallocate"]], "dsireallocate() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiReallocate"]], "dsireallocate() (chapeldistribution.basearroverrectangulardom method)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.dsiReallocate"]], "dsiremove() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.dsiRemove"]], "dsirequiresprivatization() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiRequiresPrivatization"]], "dsirequiresprivatization() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiRequiresPrivatization"]], "dsirequiresprivatization() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiRequiresPrivatization"]], "dsisize() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiSize"]], "dsistaticfastfollowcheck() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiStaticFastFollowCheck"]], "dsistride() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiStride"]], "dsistride() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.dsiStride"]], "dsisupportsalignedfollower() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiSupportsAlignedFollower"]], "dsisupportsautolocalaccess() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiSupportsAutoLocalAccess"]], "dsisupportsoffsetautolocalaccess() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiSupportsOffsetAutoLocalAccess"]], "dsisupportsprivatization() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.dsiSupportsPrivatization"]], "dsisupportsprivatization() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiSupportsPrivatization"]], "dsisupportsprivatization() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.dsiSupportsPrivatization"]], "dsitrackdomains() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.dsiTrackDomains"]], "elttype (chapeldistribution.absbasearr attribute)": [[19, "ChapelDistribution.AbsBaseArr.eltType"]], "elttype (chapeldistribution.baserectangulararr attribute)": [[19, "ChapelDistribution.BaseRectangularArr.eltType"]], "getbasearrtype() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.getBaseArrType"]], "getnnz() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.getNNZ"]], "hasposnegunitstride() (chapeldistribution.basearroverrectangulardom method)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.hasPosNegUnitStride"]], "hasposnegunitstride() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.hasPosNegUnitStride"]], "hasunitstride() (chapeldistribution.basearroverrectangulardom method)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.hasUnitStride"]], "hasunitstride() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.hasUnitStride"]], "idxtolocale() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.idxToLocale"]], "idxtype (chapeldistribution.basearroverrectangulardom attribute)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.idxType"]], "idxtype (chapeldistribution.baserectangulardom attribute)": [[19, "ChapelDistribution.BaseRectangularDom.idxType"]], "idxtype (chapeldistribution.basesparsearr attribute)": [[19, "ChapelDistribution.BaseSparseArr.idxType"]], "idxtype (chapeldistribution.basesparsedom attribute)": [[19, "ChapelDistribution.BaseSparseDom.idxType"]], "idxtype (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.idxType"]], "init() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.init"]], "init() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.init"]], "init() (chapeldistribution.sparseindexbuffer method)": [[19, "ChapelDistribution.SparseIndexBuffer.init"]], "init() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.init"]], "init=() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.init="]], "irv (chapeldistribution.basesparsearrimpl attribute)": [[19, "ChapelDistribution.BaseSparseArrImpl.irv"]], "isassociative() (chapeldistribution.baseassociativedom method)": [[19, "ChapelDistribution.BaseAssociativeDom.isAssociative"]], "isassociative() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isAssociative"]], "isdefaultrectangular() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.isDefaultRectangular"]], "isdefaultrectangular() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isDefaultRectangular"]], "isrankchangearrayview() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.isRankChangeArrayView"]], "isrankchangedomainview() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isRankChangeDomainView"]], "isrectangular() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isRectangular"]], "isrectangular() (chapeldistribution.baserectangulardom method)": [[19, "ChapelDistribution.BaseRectangularDom.isRectangular"]], "isreindexarrayview() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.isReindexArrayView"]], "isreindexdomainview() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isReindexDomainView"]], "isslicearrayview() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.isSliceArrayView"]], "isslicedomainview() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isSliceDomainView"]], "issparse() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.isSparse"]], "issparse() (chapeldistribution.basesparsedom method)": [[19, "ChapelDistribution.BaseSparseDom.isSparse"]], "linksdistribution() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.linksDistribution"]], "newassociativedom() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.newAssociativeDom"]], "newrectangulardom() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.newRectangularDom"]], "newsparsedom() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.newSparseDom"]], "next (chapeldistribution.basearr attribute)": [[19, "ChapelDistribution.BaseArr.next"]], "nnzdom (chapeldistribution.basesparsedomimpl attribute)": [[19, "ChapelDistribution.BaseSparseDomImpl.nnzDom"]], "obj (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.obj"]], "parentdom (chapeldistribution.basesparsedom attribute)": [[19, "ChapelDistribution.BaseSparseDom.parentDom"]], "pid (chapeldistribution.basearr attribute)": [[19, "ChapelDistribution.BaseArr.pid"]], "pid (chapeldistribution.basedist attribute)": [[19, "ChapelDistribution.BaseDist.pid"]], "pid (chapeldistribution.basedom attribute)": [[19, "ChapelDistribution.BaseDom.pid"]], "prev (chapeldistribution.basearr attribute)": [[19, "ChapelDistribution.BaseArr.prev"]], "rank (chapeldistribution.basearroverrectangulardom attribute)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.rank"]], "rank (chapeldistribution.baserectangulardom attribute)": [[19, "ChapelDistribution.BaseRectangularDom.rank"]], "rank (chapeldistribution.basesparsearr attribute)": [[19, "ChapelDistribution.BaseSparseArr.rank"]], "rank (chapeldistribution.basesparsedom attribute)": [[19, "ChapelDistribution.BaseSparseDom.rank"]], "rank (chapeldistribution.sparseindexbuffer attribute)": [[19, "ChapelDistribution.SparseIndexBuffer.rank"]], "rank() (chapeldistribution.baseassociativedom method)": [[19, "ChapelDistribution.BaseAssociativeDom.rank"]], "remove() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.remove"]], "remove() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.remove"]], "remove() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.remove"]], "remove_arr() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.remove_arr"]], "remove_containing_arr() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.remove_containing_arr"]], "remove_dom() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.remove_dom"]], "serialize() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.serialize"]], "singleton() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.singleton"]], "sparsebulkshiftarray() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.sparseBulkShiftArray"]], "sparsebulkshiftarray() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.sparseBulkShiftArray"]], "sparseshiftarray() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.sparseShiftArray"]], "sparseshiftarray() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.sparseShiftArray"]], "sparseshiftarrayback() (chapeldistribution.basearr method)": [[19, "ChapelDistribution.BaseArr.sparseShiftArrayBack"]], "sparseshiftarrayback() (chapeldistribution.basesparsearrimpl method)": [[19, "ChapelDistribution.BaseSparseArrImpl.sparseShiftArrayBack"]], "strides (chapeldistribution.basearroverrectangulardom attribute)": [[19, "ChapelDistribution.BaseArrOverRectangularDom.strides"]], "strides (chapeldistribution.baserectangulardom attribute)": [[19, "ChapelDistribution.BaseRectangularDom.strides"]], "targetlocales() (chapeldistribution._distribution method)": [[19, "ChapelDistribution._distribution.targetLocales"]], "trackarrays() (chapeldistribution.basedom method)": [[19, "ChapelDistribution.BaseDom.trackArrays"]], "trackdomains() (chapeldistribution.basedist method)": [[19, "ChapelDistribution.BaseDist.trackDomains"]], "!=() (in module chapeldomain)": [[20, "ChapelDomain.!="]], "&() (in module chapeldomain)": [[20, "ChapelDomain.&"]], "&=() (in module chapeldomain)": [[20, "ChapelDomain.&="]], "+() (in module chapeldomain)": [[20, "ChapelDomain.+"]], "+=() (in module chapeldomain)": [[20, "ChapelDomain.+="]], "-() (in module chapeldomain)": [[20, "ChapelDomain.-"]], "-=() (in module chapeldomain)": [[20, "ChapelDomain.-="]], ":() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.:"]], "=() (in module chapeldomain)": [[20, "ChapelDomain.="]], "==() (in module chapeldomain)": [[20, "ChapelDomain.=="]], "^() (in module chapeldomain)": [[20, "ChapelDomain.^"]], "^=() (in module chapeldomain)": [[20, "ChapelDomain.^="]], "_arraysoverlhsdom() (chapeldomain._domain.unsafeassignmanager iterator)": [[20, "ChapelDomain._domain.unsafeAssignManager._arraysOverLhsDom"]], "_checkifallelementsareinitialized() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._checkIfAllElementsAreInitialized"]], "_checknocheckswhennondefaultinitializableelttype() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._checkNoChecksWhenNonDefaultInitializableEltType"]], "_checkthatarrayshapeissupported() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._checkThatArrayShapeIsSupported"]], "_checkthatindexmatchesarrayshape() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._checkThatIndexMatchesArrayShape"]], "_checks (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._checks"]], "_do_destroy() (chapeldomain._domain method)": [[20, "ChapelDomain._domain._do_destroy"]], "_domain (record in chapeldomain)": [[20, "ChapelDomain._domain"]], "_domain.unsafeassignmanager (record in chapeldomain)": [[20, "ChapelDomain._domain.unsafeAssignManager"]], "_ensurenolongermanagingthis() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._ensureNoLongerManagingThis"]], "_getdomain() (in module chapeldomain)": [[20, "ChapelDomain._getDomain"]], "_instance (chapeldomain._domain attribute)": [[20, "ChapelDomain._domain._instance"]], "_isactivemanager (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._isActiveManager"]], "_isarrayownedbylhsdomain() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._isArrayOwnedByLhsDomain"]], "_isbasearrclasselementnil() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._isBaseArrClassElementNil"]], "_lhsinstance (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._lhsInstance"]], "_lhspid (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._lhsPid"]], "_moveinitializeelement() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager._moveInitializeElement"]], "_oldlhsdomaincopy (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._oldLhsDomainCopy"]], "_pid (chapeldomain._domain attribute)": [[20, "ChapelDomain._domain._pid"]], "_rhsinstance (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._rhsInstance"]], "_rhspid (chapeldomain._domain.unsafeassignmanager attribute)": [[20, "ChapelDomain._domain.unsafeAssignManager._rhsPid"]], "_unowned (chapeldomain._domain attribute)": [[20, "ChapelDomain._domain._unowned"]], "_value() (chapeldomain._domain method)": [[20, "ChapelDomain._domain._value"]], "add() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.add"]], "align() (in module chapeldomain)": [[20, "ChapelDomain.align"]], "alignment() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.alignment"]], "autolocalaccessoffsetcheck() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.autoLocalAccessOffsetCheck"]], "boundingbox() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.boundingBox"]], "buildarray() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.buildArray"]], "buildarraywith() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.buildArrayWith"]], "bulkadd() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.bulkAdd"]], "bulkaddnopreserveinds() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.bulkAddNoPreserveInds"]], "by() (in module chapeldomain)": [[20, "ChapelDomain.by"]], "checkorderbounds() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.checkOrderBounds"]], "checks() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.checks"]], "chpl__builddomainexpr() (in module chapeldomain)": [[20, "ChapelDomain.chpl__buildDomainExpr"]], "chpl__builddomainruntimetype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__buildDomainRuntimeType"]], "chpl__buildsparsedomainruntimetype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__buildSparseDomainRuntimeType"]], "chpl__buildsparsedomainruntimetypeforparentdomain() (in module chapeldomain)": [[20, "ChapelDomain.chpl__buildSparseDomainRuntimeTypeForParentDomain"]], "chpl__buildsubdomaintype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__buildSubDomainType"]], "chpl__checkdomainsmatch() (in module chapeldomain)": [[20, "ChapelDomain.chpl__checkDomainsMatch"]], "chpl__checktupirregdomassign() (in module chapeldomain)": [[20, "ChapelDomain.chpl__checkTupIrregDomAssign"]], "chpl__coercecopy() (in module chapeldomain)": [[20, "ChapelDomain.chpl__coerceCopy"]], "chpl__coercemove() (in module chapeldomain)": [[20, "ChapelDomain.chpl__coerceMove"]], "chpl__convertruntimetypetovalue() (in module chapeldomain)": [[20, "ChapelDomain.chpl__convertRuntimeTypeToValue"]], "chpl__convertvaluetoruntimetype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__convertValueToRuntimeType"]], "chpl__deserialize() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl__deserialize"]], "chpl__domainfromarrayruntimetype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__domainFromArrayRuntimeType"]], "chpl__ensuredomainexpr() (in module chapeldomain)": [[20, "ChapelDomain.chpl__ensureDomainExpr"]], "chpl__islegalrecttupdomassign() (in module chapeldomain)": [[20, "ChapelDomain.chpl__isLegalRectTupDomAssign"]], "chpl__isrectangulardomtype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__isRectangularDomType"]], "chpl__issparsedomtype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__isSparseDomType"]], "chpl__istupleofranges() (in module chapeldomain)": [[20, "ChapelDomain.chpl__isTupleOfRanges"]], "chpl__parentdomainfromdomainruntimetype() (in module chapeldomain)": [[20, "ChapelDomain.chpl__parentDomainFromDomainRuntimeType"]], "chpl__promotiontype() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl__promotionType"]], "chpl__serialize() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl__serialize"]], "chpl__untranslate() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl__unTranslate"]], "chpl_checkelttype() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_checkEltType"]], "chpl_checknegativestride() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_checkNegativeStride"]], "chpl_countdomhelp() (in module chapeldomain)": [[20, "ChapelDomain.chpl_countDomHelp"]], "chpl_domaincasthelper() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_domainCastHelper"]], "chpl_domaincastissafe() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_domainCastIsSafe"]], "chpl_domaindistislayout() (in module chapeldomain)": [[20, "ChapelDomain.chpl_domainDistIsLayout"]], "chpl_domaintrycasthelper() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_domainTryCastHelper"]], "chpl_domaintrycastissafe() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_domainTryCastIsSafe"]], "chpl_integralidxtype() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_integralIdxType"]], "chpl_isassociativedomclass() (in module chapeldomain)": [[20, "ChapelDomain.chpl_isAssociativeDomClass"]], "chpl_samedomainkind() (in module chapeldomain)": [[20, "ChapelDomain.chpl_sameDomainKind"]], "chpl_shapeas() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.chpl_shapeAs"]], "clear() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.clear"]], "contains() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.contains"]], "createindexbuffer() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.createIndexBuffer"]], "defaulthashtableresizethreshold (in module chapeldomain)": [[20, "ChapelDomain.defaultHashTableResizeThreshold"]], "defaultsparsedist() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.defaultSparseDist"]], "deinit() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.deinit"]], "deinit() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.deinit"]], "deserialize() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.deserialize"]], "deserializefrom() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.deserializeFrom"]], "dim() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.dim"]], "dimiter() (chapeldomain._domain iterator)": [[20, "ChapelDomain._domain.dimIter"]], "dims() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.dims"]], "displayrepresentation() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.displayRepresentation"]], "dist() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.dist"]], "distribution() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.distribution"]], "entercontext() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.enterContext"]], "exitcontext() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.exitContext"]], "expand() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.expand"]], "exterior() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.exterior"]], "first() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.first"]], "fullidxtype() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.fullIdxType"]], "getindices() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.getIndices"]], "hasposnegunitstride() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.hasPosNegUnitStride"]], "hassinglelocalsubdomain() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.hasSingleLocalSubdomain"]], "hasunitstride() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.hasUnitStride"]], "high() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.high"]], "highbound() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.highBound"]], "idxtype() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.idxType"]], "indexorder() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.indexOrder"]], "indices() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.indices"]], "init() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.init"]], "init=() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.init="]], "initialize() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.initialize"]], "interior() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.interior"]], "isassociative() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.isAssociative"]], "isclassreferencenil() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.isClassReferenceNil"]], "iselementinitialized() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.isElementInitialized"]], "isempty() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.isEmpty"]], "isirregular() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.isIrregular"]], "isrectangular() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.isRectangular"]], "issparse() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.isSparse"]], "iteratoryieldslocalelements() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.iteratorYieldsLocalElements"]], "last() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.last"]], "localslice() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.localSlice"]], "localsubdomain() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.localSubdomain"]], "localsubdomains() (chapeldomain._domain iterator)": [[20, "ChapelDomain._domain.localSubdomains"]], "low() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.low"]], "lowbound() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.lowBound"]], "makerectangulardomain() (in module chapeldomain)": [[20, "ChapelDomain.makeRectangularDomain"]], "newindices() (chapeldomain._domain.unsafeassignmanager iterator)": [[20, "ChapelDomain._domain.unsafeAssignManager.newIndices"]], "nonegativestridewarnings (in module chapeldomain)": [[20, "ChapelDomain.noNegativeStrideWarnings"]], "ordertoindex() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.orderToIndex"]], "position() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.position"]], "postinit() (chapeldomain._domain.unsafeassignmanager method)": [[20, "ChapelDomain._domain.unsafeAssignManager.postinit"]], "rank() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.rank"]], "remove() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.remove"]], "requestcapacity() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.requestCapacity"]], "serialize() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.serialize"]], "setindices() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.setIndices"]], "shape() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.shape"]], "size() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.size"]], "sizeas() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.sizeAs"]], "sorted() (chapeldomain._domain iterator)": [[20, "ChapelDomain._domain.sorted"]], "stride() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.stride"]], "strides() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.strides"]], "supportsautolocalaccess() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.supportsAutoLocalAccess"]], "supportsoffsetautolocalaccess() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.supportsOffsetAutoLocalAccess"]], "targetlocales() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.targetLocales"]], "these() (chapeldomain._domain iterator)": [[20, "ChapelDomain._domain.these"]], "this() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.this"]], "translate() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.translate"]], "trycast() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.tryCast"]], "trycreatearray() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.tryCreateArray"]], "tupleofrangesslice() (in module chapeldomain)": [[20, "ChapelDomain.tupleOfRangesSlice"]], "unsafeassign() (chapeldomain._domain method)": [[20, "ChapelDomain._domain.unsafeAssign"]], "|() (in module chapeldomain)": [[20, "ChapelDomain.|"]], "|=() (in module chapeldomain)": [[20, "ChapelDomain.|="]], "_gen_key() (in module chapelhashing)": [[22, "ChapelHashing._gen_key"]], "chpl__defaulthashcombine() (in module chapelhashing)": [[22, "ChapelHashing.chpl__defaultHashCombine"]], "chpl__defaulthashwrapper() (in module chapelhashing)": [[22, "ChapelHashing.chpl__defaultHashWrapper"]], "chpl__defaulthashwrapperinner() (in module chapelhashing)": [[22, "ChapelHashing.chpl__defaultHashWrapperInner"]], "hash() (chapelhashing._array method)": [[22, "ChapelHashing._array.hash"]], "hash() (chapelhashing.bool method)": [[22, "ChapelHashing.bool.hash"]], "hash() (chapelhashing.chpl_taskid_t method)": [[22, "ChapelHashing.chpl_taskID_t.hash"]], "hash() (chapelhashing.complex method)": [[22, "ChapelHashing.complex.hash"]], "hash() (chapelhashing.enum method)": [[22, "ChapelHashing.enum.hash"]], "hash() (chapelhashing.imag method)": [[22, "ChapelHashing.imag.hash"]], "hash() (chapelhashing.int method)": [[22, "ChapelHashing.int.hash"]], "hash() (chapelhashing.locale method)": [[22, "ChapelHashing.locale.hash"]], "hash() (chapelhashing.range method)": [[22, "ChapelHashing.range.hash"]], "hash() (chapelhashing.real method)": [[22, "ChapelHashing.real.hash"]], "hash() (chapelhashing.uint method)": [[22, "ChapelHashing.uint.hash"]], "proc() (in module chapelhashing)": [[22, "ChapelHashing.proc"]], "_allslots() (in module chapelhashtable)": [[23, "ChapelHashtable._allSlots"]], "_findpowerof2() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable._findPowerOf2"]], "_findslot() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable._findSlot"]], "_lookforslots() (chapelhashtable.chpl__hashtable iterator)": [[23, "ChapelHashtable.chpl__hashtable._lookForSlots"]], "allslots() (chapelhashtable.chpl__hashtable iterator)": [[23, "ChapelHashtable.chpl__hashtable.allSlots"]], "allocatedata() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.allocateData"]], "allocatetable() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.allocateTable"]], "chpl_tableentry (record in chapelhashtable)": [[23, "ChapelHashtable.chpl_TableEntry"]], "chpl__hash_status (enum in chapelhashtable)": [[23, "ChapelHashtable.chpl__hash_status"]], "chpl__hashtable (record in chapelhashtable)": [[23, "ChapelHashtable.chpl__hashtable"]], "chpl__rehashhelpers (class in chapelhashtable)": [[23, "ChapelHashtable.chpl__rehashHelpers"]], "clearslot() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.clearSlot"]], "deinit() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.deinit"]], "fillslot() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.fillSlot"]], "findavailableslot() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.findAvailableSlot"]], "findfullslot() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.findFullSlot"]], "finishrehash() (chapelhashtable.chpl__rehashhelpers method)": [[23, "ChapelHashtable.chpl__rehashHelpers.finishRehash"]], "init() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.init"]], "isfull() (chapelhashtable.chpl_tableentry method)": [[23, "ChapelHashtable.chpl_TableEntry.isFull"]], "isslotfull() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.isSlotFull"]], "key (chapelhashtable.chpl_tableentry attribute)": [[23, "ChapelHashtable.chpl_TableEntry.key"]], "keytype (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.keyType"]], "keysmatch() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.keysMatch"]], "maybeshrinkafterremove() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.maybeShrinkAfterRemove"]], "moveelementduringrehash() (chapelhashtable.chpl__rehashhelpers method)": [[23, "ChapelHashtable.chpl__rehashHelpers.moveElementDuringRehash"]], "postponeresize (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.postponeResize"]], "rehash() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.rehash"]], "rehashhelpers (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.rehashHelpers"]], "requestcapacity() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.requestCapacity"]], "resize() (chapelhashtable.chpl__hashtable method)": [[23, "ChapelHashtable.chpl__hashtable.resize"]], "resizethreshold (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.resizeThreshold"]], "startrehash() (chapelhashtable.chpl__rehashhelpers method)": [[23, "ChapelHashtable.chpl__rehashHelpers.startRehash"]], "startingsize (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.startingSize"]], "status (chapelhashtable.chpl_tableentry attribute)": [[23, "ChapelHashtable.chpl_TableEntry.status"]], "table (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.table"]], "tablenumdeletedslots (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.tableNumDeletedSlots"]], "tablenumfullslots (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.tableNumFullSlots"]], "tablesize (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.tableSize"]], "val (chapelhashtable.chpl_tableentry attribute)": [[23, "ChapelHashtable.chpl_TableEntry.val"]], "valtype (chapelhashtable.chpl__hashtable attribute)": [[23, "ChapelHashtable.chpl__hashtable.valType"]], "_can_stringify_direct() (in module chapeliostringifyhelper)": [[25, "ChapelIOStringifyHelper._can_stringify_direct"]], "stringify_simple() (in module chapeliostringifyhelper)": [[25, "ChapelIOStringifyHelper.stringify_simple"]], "=() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.="]], "_freeiterator() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._freeIterator"]], "_getiterator() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._getIterator"]], "_getiteratorzip() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._getIteratorZip"]], "_tofastfollower() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toFastFollower"]], "_tofollower() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toFollower"]], "_tofollowerzip() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toFollowerZip"]], "_tofollowerzipinternal() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toFollowerZipInternal"]], "_toleader() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toLeader"]], "_toleaderzip() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toLeaderZip"]], "_tostandalone() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport._toStandalone"]], "chpl__canhavefastfollowers() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl__canHaveFastFollowers"]], "chpl__canleadfastfollowers() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl__canLeadFastFollowers"]], "chpl__dynamicfastfollowcheck() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl__dynamicFastFollowCheck"]], "chpl__staticfastfollowcheck() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl__staticFastFollowCheck"]], "chpl_buildstandinrtt() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_buildStandInRTT"]], "chpl_computeiteratorshape() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_computeIteratorShape"]], "chpl_elemtypeforreducingiterables() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_elemTypeForReducingIterables"]], "chpl_iteratorfromforexpr() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorFromForExpr"]], "chpl_iteratorfromforeachexpr() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorFromForeachExpr"]], "chpl_iteratorhasdomainshape() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorHasDomainShape"]], "chpl_iteratorhasrangeshape() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorHasRangeShape"]], "chpl_iteratorhasshape() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorHasShape"]], "chpl_iteratorshapestatictypeornothing() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_iteratorShapeStaticTypeOrNothing"]], "chpl_trivialleader() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.chpl_trivialLeader"]], "iteratorindex() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.iteratorIndex"]], "iteratorindextype() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.iteratorIndexType"]], "iteratorindextypezip() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.iteratorIndexTypeZip"]], "iteratortoarrayelementtype() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.iteratorToArrayElementType"]], "singlerefiter() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.singleRefIter"]], "singlevaliter() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.singleValIter"]], "thunktoreturntype() (in module chapeliteratorsupport)": [[26, "ChapelIteratorSupport.thunkToReturnType"]], "=() (chapellocale.locale method)": [[27, "ChapelLocale.locale.="]], "abstractlocalemodel (class in chapellocale)": [[27, "ChapelLocale.AbstractLocaleModel"]], "abstractrootlocale (class in chapellocale)": [[27, "ChapelLocale.AbstractRootLocale"]], "baselocale (class in chapellocale)": [[27, "ChapelLocale.BaseLocale"]], "dummylocale (class in chapellocale)": [[27, "ChapelLocale.DummyLocale"]], "_getchild() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale._getChild"]], "_getchild() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale._getChild"]], "_getchildcount() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale._getChildCount"]], "_getchildcount() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale._getChildCount"]], "_getchildcount() (chapellocale._locale method)": [[27, "ChapelLocale._locale._getChildCount"]], "_instance (chapellocale._locale attribute)": [[27, "ChapelLocale._locale._instance"]], "_locale (record in chapellocale)": [[27, "ChapelLocale._locale"]], "_value() (chapellocale._locale method)": [[27, "ChapelLocale._locale._value"]], "addchild() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.addChild"]], "addchild() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale.addChild"]], "c_sublocid_all (in module chapellocale)": [[27, "ChapelLocale.c_sublocid_all"]], "c_sublocid_any (in module chapellocale)": [[27, "ChapelLocale.c_sublocid_any"]], "c_sublocid_none (in module chapellocale)": [[27, "ChapelLocale.c_sublocid_none"]], "chpl_defaultlocaleinitprivate() (in module chapellocale)": [[27, "ChapelLocale.chpl_defaultLocaleInitPrivate"]], "chpl_getlocaleid() (in module chapellocale)": [[27, "ChapelLocale.chpl_getLocaleID"]], "chpl_getsingletonlocalearray() (in module chapellocale)": [[27, "ChapelLocale.chpl_getSingletonLocaleArray"]], "chpl_id() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.chpl_id"]], "chpl_id() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale.chpl_id"]], "chpl_id() (chapellocale._locale method)": [[27, "ChapelLocale._locale.chpl_id"]], "chpl_initonlocales() (chapellocale.abstractrootlocale iterator)": [[27, "ChapelLocale.AbstractRootLocale.chpl_initOnLocales"]], "chpl_init_rootlocale() (in module chapellocale)": [[27, "ChapelLocale.chpl_init_rootLocale"]], "chpl_isactualsublocid() (in module chapellocale)": [[27, "ChapelLocale.chpl_isActualSublocID"]], "chpl_localeid_to_locale() (in module chapellocale)": [[27, "ChapelLocale.chpl_localeID_to_locale"]], "chpl_localeid() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.chpl_localeid"]], "chpl_localeid() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale.chpl_localeid"]], "chpl_localeid() (chapellocale._locale method)": [[27, "ChapelLocale._locale.chpl_localeid"]], "chpl_name() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.chpl_name"]], "chpl_name() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale.chpl_name"]], "chpl_name() (chapellocale._locale method)": [[27, "ChapelLocale._locale.chpl_name"]], "chpl_nodeid_t (in module chapellocale)": [[27, "ChapelLocale.chpl_nodeID_t"]], "chpl_rootlocaleinitprivate() (in module chapellocale)": [[27, "ChapelLocale.chpl_rootLocaleInitPrivate"]], "chpl_singletoncurrentlocaleinitprivate() (in module chapellocale)": [[27, "ChapelLocale.chpl_singletonCurrentLocaleInitPrivate"]], "chpl_singletoncurrentlocaleinitprivatesublocs() (in module chapellocale)": [[27, "ChapelLocale.chpl_singletonCurrentLocaleInitPrivateSublocs"]], "chpl_singletonthislocalearray (chapellocale.abstractlocalemodel attribute)": [[27, "ChapelLocale.AbstractLocaleModel.chpl_singletonThisLocaleArray"]], "chpl_sublocid_t (in module chapellocale)": [[27, "ChapelLocale.chpl_sublocID_t"]], "chpl_taskrunningcntdec() (in module chapellocale)": [[27, "ChapelLocale.chpl_taskRunningCntDec"]], "chpl_taskrunningcntinc() (in module chapellocale)": [[27, "ChapelLocale.chpl_taskRunningCntInc"]], "chpl_taskrunningcntreset() (in module chapellocale)": [[27, "ChapelLocale.chpl_taskRunningCntReset"]], "chpl_task_getrequestedsubloc() (in module chapellocale)": [[27, "ChapelLocale.chpl_task_getRequestedSubloc"]], "defaultlocale (in module chapellocale)": [[27, "ChapelLocale.defaultLocale"]], "deinit() (chapellocale._locale method)": [[27, "ChapelLocale._locale.deinit"]], "deinit() (in module chapellocale)": [[27, "ChapelLocale.deinit"]], "dummylocale (in module chapellocale)": [[27, "ChapelLocale.dummyLocale"]], "getdefaultlocalearray() (chapellocale.abstractrootlocale method)": [[27, "ChapelLocale.AbstractRootLocale.getDefaultLocaleArray"]], "getdefaultlocalespace() (chapellocale.abstractrootlocale method)": [[27, "ChapelLocale.AbstractRootLocale.getDefaultLocaleSpace"]], "gpus() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.gpus"]], "gpusimpl() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.gpusImpl"]], "here() (in module chapellocale)": [[27, "ChapelLocale.here"]], "here_id() (in module chapellocale)": [[27, "ChapelLocale.here_id"]], "hostname() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.hostname"]], "hostname() (chapellocale.locale method)": [[27, "ChapelLocale.locale.hostname"]], "id() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.id"]], "id() (chapellocale.locale method)": [[27, "ChapelLocale.locale.id"]], "init() (chapellocale.abstractlocalemodel method)": [[27, "ChapelLocale.AbstractLocaleModel.init"]], "init() (chapellocale.abstractrootlocale method)": [[27, "ChapelLocale.AbstractRootLocale.init"]], "init() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.init"]], "init() (chapellocale.dummylocale method)": [[27, "ChapelLocale.DummyLocale.init"]], "init() (chapellocale._locale method)": [[27, "ChapelLocale._locale.init"]], "init=() (chapellocale._locale method)": [[27, "ChapelLocale._locale.init="]], "isgpu() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.isGpu"]], "localeidtolocale() (chapellocale.abstractrootlocale method)": [[27, "ChapelLocale.AbstractRootLocale.localeIDtoLocale"]], "localekind (enum in chapellocale)": [[27, "ChapelLocale.localeKind"]], "localeid() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.localeid"]], "localeid() (chapellocale._locale method)": [[27, "ChapelLocale._locale.localeid"]], "maxtaskpar (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.maxTaskPar"]], "maxtaskpar() (chapellocale.locale method)": [[27, "ChapelLocale.locale.maxTaskPar"]], "npuslogacc (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.nPUsLogAcc"]], "npuslogall (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.nPUsLogAll"]], "npusphysacc (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.nPUsPhysAcc"]], "npusphysall (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.nPUsPhysAll"]], "name() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.name"]], "name() (chapellocale.locale method)": [[27, "ChapelLocale.locale.name"]], "nillocale (in module chapellocale)": [[27, "ChapelLocale.nilLocale"]], "numpus() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.numPUs"]], "numpus() (chapellocale.locale method)": [[27, "ChapelLocale.locale.numPUs"]], "origrootlocale (in module chapellocale)": [[27, "ChapelLocale.origRootLocale"]], "parent (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.parent"]], "replicaterootlocale (in module chapellocale)": [[27, "ChapelLocale.replicateRootLocale"]], "rootlocale (in module chapellocale)": [[27, "ChapelLocale.rootLocale"]], "runningtaskcnt() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.runningTaskCnt"]], "runningtaskcntadd() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.runningTaskCntAdd"]], "runningtaskcntset() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.runningTaskCntSet"]], "runningtaskcntsub() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.runningTaskCntSub"]], "runningtaskcounter (chapellocale.baselocale attribute)": [[27, "ChapelLocale.BaseLocale.runningTaskCounter"]], "runningtasks() (chapellocale.locale method)": [[27, "ChapelLocale.locale.runningTasks"]], "serialize() (chapellocale.baselocale method)": [[27, "ChapelLocale.BaseLocale.serialize"]], "chpl_localspinlock (record in chapellocks)": [[28, "ChapelLocks.chpl_LocalSpinlock"]], "init() (chapellocks.chpl_localspinlock method)": [[28, "ChapelLocks.chpl_LocalSpinlock.init"]], "init=() (chapellocks.chpl_localspinlock method)": [[28, "ChapelLocks.chpl_LocalSpinlock.init="]], "l (chapellocks.chpl_localspinlock attribute)": [[28, "ChapelLocks.chpl_LocalSpinlock.l"]], "lock() (chapellocks.chpl_localspinlock method)": [[28, "ChapelLocks.chpl_LocalSpinlock.lock"]], "unlock() (chapellocks.chpl_localspinlock method)": [[28, "ChapelLocks.chpl_LocalSpinlock.unlock"]], "chpl_comm_default_num_locales() (in module chapelnumlocales)": [[29, "ChapelNumLocales.chpl_comm_default_num_locales"]], "numlocales (in module chapelnumlocales)": [[29, "ChapelNumLocales.numLocales"]], "chpl_getprivatizedcopy() (in module chapelprivatization)": [[30, "ChapelPrivatization.chpl_getPrivatizedCopy"]], "chpl_privateobject_t (record in chapelprivatization)": [[30, "ChapelPrivatization.chpl_privateObject_t"]], "chpl_privateobjects (in module chapelprivatization)": [[30, "ChapelPrivatization.chpl_privateObjects"]], "obj (chapelprivatization.chpl_privateobject_t attribute)": [[30, "ChapelPrivatization.chpl_privateObject_t.obj"]], "!=() (in module chapelrange)": [[31, "ChapelRange.!="]], "+() (in module chapelrange)": [[31, "ChapelRange.+"]], "+=() (in module chapelrange)": [[31, "ChapelRange.+="]], "-() (in module chapelrange)": [[31, "ChapelRange.-"]], "-=() (in module chapelrange)": [[31, "ChapelRange.-="]], ":() (in module chapelrange)": [[31, "ChapelRange.:"]], "<() (in module chapelrange)": [[31, "ChapelRange.<"]], "<=() (in module chapelrange)": [[31, "ChapelRange.<="]], "=() (in module chapelrange)": [[31, "ChapelRange.="]], "==() (in module chapelrange)": [[31, "ChapelRange.=="]], ">() (in module chapelrange)": [[31, "ChapelRange.>"]], ">=() (in module chapelrange)": [[31, "ChapelRange.>="]], "_alignment (chapelrange._range attribute)": [[31, "ChapelRange._range._alignment"]], "_high (chapelrange._range attribute)": [[31, "ChapelRange._range._high"]], "_low (chapelrange._range attribute)": [[31, "ChapelRange._range._low"]], "_range (record in chapelrange)": [[31, "ChapelRange._range"]], "_stride (chapelrange._range attribute)": [[31, "ChapelRange._range._stride"]], "align() (in module chapelrange)": [[31, "ChapelRange.align"]], "alignhigh() (chapelrange.range method)": [[31, "ChapelRange.range.alignHigh"]], "alignlow() (chapelrange.range method)": [[31, "ChapelRange.range.alignLow"]], "alignedhighasint() (chapelrange.range method)": [[31, "ChapelRange.range.alignedHighAsInt"]], "alignedlowasint() (chapelrange.range method)": [[31, "ChapelRange.range.alignedLowAsInt"]], "alignment() (chapelrange.range method)": [[31, "ChapelRange.range.alignment"]], "boundkind (enum in chapelrange)": [[31, "ChapelRange.boundKind"]], "boundingbox() (chapelrange.range method)": [[31, "ChapelRange.range.boundingBox"]], "bounds (chapelrange._range attribute)": [[31, "ChapelRange._range.bounds"]], "by() (in module chapelrange)": [[31, "ChapelRange.by"]], "checkifiterwilloverflow() (chapelrange.range method)": [[31, "ChapelRange.range.checkIfIterWillOverflow"]], "chpl__add() (in module chapelrange)": [[31, "ChapelRange.chpl__add"]], "chpl__addrangestrides() (in module chapelrange)": [[31, "ChapelRange.chpl__addRangeStrides"]], "chpl__diffmod() (in module chapelrange)": [[31, "ChapelRange.chpl__diffMod"]], "chpl__extendedeuclid() (in module chapelrange)": [[31, "ChapelRange.chpl__extendedEuclid"]], "chpl__extendedeuclidhelper() (in module chapelrange)": [[31, "ChapelRange.chpl__extendedEuclidHelper"]], "chpl__idxtoint() (in module chapelrange)": [[31, "ChapelRange.chpl__idxToInt"]], "chpl__idxtypetointidxtype() (in module chapelrange)": [[31, "ChapelRange.chpl__idxTypeToIntIdxType"]], "chpl__inttoidx() (in module chapelrange)": [[31, "ChapelRange.chpl__intToIdx"]], "chpl__mod() (in module chapelrange)": [[31, "ChapelRange.chpl__mod"]], "chpl__nudgehighbound() (in module chapelrange)": [[31, "ChapelRange.chpl__nudgeHighBound"]], "chpl__nudgelowbound() (in module chapelrange)": [[31, "ChapelRange.chpl__nudgeLowBound"]], "chpl__promotiontype() (chapelrange.range method)": [[31, "ChapelRange.range.chpl__promotionType"]], "chpl__singlevalidxtype() (in module chapelrange)": [[31, "ChapelRange.chpl__singleValIdxType"]], "chpl__untranslate() (chapelrange.range method)": [[31, "ChapelRange.range.chpl__unTranslate"]], "chpl_alignedhighasintforiter() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_alignedHighAsIntForIter"]], "chpl_alignedlowasintforiter() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_alignedLowAsIntForIter"]], "chpl_assignstrideissafe() (in module chapelrange)": [[31, "ChapelRange.chpl_assignStrideIsSafe"]], "chpl_assignstrideisunsafe() (in module chapelrange)": [[31, "ChapelRange.chpl_assignStrideIsUnsafe"]], "chpl_bounded_count_for_param_loop_high() (in module chapelrange)": [[31, "ChapelRange.chpl_bounded_count_for_param_loop_high"]], "chpl_bounded_count_for_param_loop_low() (in module chapelrange)": [[31, "ChapelRange.chpl_bounded_count_for_param_loop_low"]], "chpl_boundscheck() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_boundsCheck"]], "chpl_build_bounded_range() (in module chapelrange)": [[31, "ChapelRange.chpl_build_bounded_range"]], "chpl_build_high_bounded_range() (in module chapelrange)": [[31, "ChapelRange.chpl_build_high_bounded_range"]], "chpl_build_low_bounded_range() (in module chapelrange)": [[31, "ChapelRange.chpl_build_low_bounded_range"]], "chpl_build_unbounded_range() (in module chapelrange)": [[31, "ChapelRange.chpl_build_unbounded_range"]], "chpl_by_help() (in module chapelrange)": [[31, "ChapelRange.chpl_by_help"]], "chpl_castissafe() (in module chapelrange)": [[31, "ChapelRange.chpl_castIsSafe"]], "chpl_checkifrangeiterwilloverflow() (in module chapelrange)": [[31, "ChapelRange.chpl_checkIfRangeIterWillOverflow"]], "chpl_checkstrides() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_checkStrides"]], "chpl_check_step_integral() (in module chapelrange)": [[31, "ChapelRange.chpl_check_step_integral"]], "chpl_compute_count_param_loop() (in module chapelrange)": [[31, "ChapelRange.chpl_compute_count_param_loop"]], "chpl_compute_high_param_loop_bound() (in module chapelrange)": [[31, "ChapelRange.chpl_compute_high_param_loop_bound"]], "chpl_compute_low_param_loop_bound() (in module chapelrange)": [[31, "ChapelRange.chpl_compute_low_param_loop_bound"]], "chpl_count_help() (in module chapelrange)": [[31, "ChapelRange.chpl_count_help"]], "chpl_direct_counted_range_iter() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_counted_range_iter"]], "chpl_direct_counted_range_iter_helper() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_counted_range_iter_helper"]], "chpl_direct_param_stride_range_iter() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_param_stride_range_iter"]], "chpl_direct_pos_stride_range_iter() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_pos_stride_range_iter"]], "chpl_direct_range_iter() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_range_iter"]], "chpl_direct_strided_range_iter() (in module chapelrange)": [[31, "ChapelRange.chpl_direct_strided_range_iter"]], "chpl_firstasintforiter() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_firstAsIntForIter"]], "chpl_high_bound_count_for_param_loop() (in module chapelrange)": [[31, "ChapelRange.chpl_high_bound_count_for_param_loop"]], "chpl_ident() (in module chapelrange)": [[31, "ChapelRange.chpl_ident"]], "chpl_idxcastissafe() (in module chapelrange)": [[31, "ChapelRange.chpl_idxCastIsSafe"]], "chpl_idxcastthrows() (in module chapelrange)": [[31, "ChapelRange.chpl_idxCastThrows"]], "chpl_idxtypesizechange() (in module chapelrange)": [[31, "ChapelRange.chpl_idxTypeSizeChange"]], "chpl_inttoidx() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_intToIdx"]], "chpl_integralidxtype() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_integralIdxType"]], "chpl_isnaturallyaligned() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_isNaturallyAligned"]], "chpl_isvalidrangeidxtype() (in module chapelrange)": [[31, "ChapelRange.chpl_isValidRangeIdxType"]], "chpl_lastasintforiter() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_lastAsIntForIter"]], "chpl_low_bound_count_for_param_loop() (in module chapelrange)": [[31, "ChapelRange.chpl_low_bound_count_for_param_loop"]], "chpl_need_to_check_step() (in module chapelrange)": [[31, "ChapelRange.chpl_need_to_check_step"]], "chpl_range_check_stride() (in module chapelrange)": [[31, "ChapelRange.chpl_range_check_stride"]], "chpl_setfields() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_setFields"]], "chpl_sizeasforiter() (chapelrange.range method)": [[31, "ChapelRange.range.chpl_sizeAsForIter"]], "chpl_strideproduct() (in module chapelrange)": [[31, "ChapelRange.chpl_strideProduct"]], "chpl_strideunion() (in module chapelrange)": [[31, "ChapelRange.chpl_strideUnion"]], "chpl_strideunionrc() (in module chapelrange)": [[31, "ChapelRange.chpl_strideUnionRC"]], "chpl_throwingcast() (in module chapelrange)": [[31, "ChapelRange.chpl_throwingCast"]], "chpl_trycastissafe() (in module chapelrange)": [[31, "ChapelRange.chpl_tryCastIsSafe"]], "contains() (chapelrange.range method)": [[31, "ChapelRange.range.contains"]], "createwithsingleelement() (chapelrange.range method)": [[31, "ChapelRange.range.createWithSingleElement"]], "debugchapelrange (in module chapelrange)": [[31, "ChapelRange.debugChapelRange"]], "defaultstride() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.defaultStride"]], "displayrepresentation() (chapelrange.range method)": [[31, "ChapelRange.range.displayRepresentation"]], "expand() (chapelrange.range method)": [[31, "ChapelRange.range.expand"]], "exterior() (chapelrange.range method)": [[31, "ChapelRange.range.exterior"]], "first() (chapelrange.range method)": [[31, "ChapelRange.range.first"]], "firstasint() (chapelrange.range method)": [[31, "ChapelRange.range.firstAsInt"]], "generaliterator() (chapelrange.range iterator)": [[31, "ChapelRange.range.generalIterator"]], "hasfirst() (chapelrange.range method)": [[31, "ChapelRange.range.hasFirst"]], "hasfirstforiter() (chapelrange.range method)": [[31, "ChapelRange.range.hasFirstForIter"]], "hashighbound() (chapelrange.range method)": [[31, "ChapelRange.range.hasHighBound"]], "haslast() (chapelrange.range method)": [[31, "ChapelRange.range.hasLast"]], "haslastforiter() (chapelrange.range method)": [[31, "ChapelRange.range.hasLastForIter"]], "haslowbound() (chapelrange.range method)": [[31, "ChapelRange.range.hasLowBound"]], "hasnegativestride() (chapelrange.range method)": [[31, "ChapelRange.range.hasNegativeStride"]], "hasparamaligned() (chapelrange.range method)": [[31, "ChapelRange.range.hasParamAligned"]], "hasparamalignment() (chapelrange.range method)": [[31, "ChapelRange.range.hasParamAlignment"]], "hasparamalignmentfield() (chapelrange.range method)": [[31, "ChapelRange.range.hasParamAlignmentField"]], "hasparamstride() (chapelrange.range method)": [[31, "ChapelRange.range.hasParamStride"]], "hasparamstridealtvalald() (chapelrange.range method)": [[31, "ChapelRange.range.hasParamStrideAltvalAld"]], "hasposnegunitstride() (chapelrange.range method)": [[31, "ChapelRange.range.hasPosNegUnitStride"]], "haspositivestride() (chapelrange.range method)": [[31, "ChapelRange.range.hasPositiveStride"]], "hassign() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.hasSign"]], "hasunitstride() (chapelrange.range method)": [[31, "ChapelRange.range.hasUnitStride"]], "high() (chapelrange.range method)": [[31, "ChapelRange.range.high"]], "highbound() (chapelrange.range method)": [[31, "ChapelRange.range.highBound"]], "idxtype (chapelrange._range attribute)": [[31, "ChapelRange._range.idxType"]], "indexorder() (chapelrange.range method)": [[31, "ChapelRange.range.indexOrder"]], "init() (chapelrange.range method)": [[31, "ChapelRange.range.init"]], "init=() (chapelrange.range method)": [[31, "ChapelRange.range.init="]], "interior() (chapelrange.range method)": [[31, "ChapelRange.range.interior"]], "isaligned() (chapelrange.range method)": [[31, "ChapelRange.range.isAligned"]], "isany() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isAny"]], "isempty() (chapelrange.range method)": [[31, "ChapelRange.range.isEmpty"]], "isnegone() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isNegOne"]], "isnegative() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isNegative"]], "isone() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isOne"]], "isposnegone() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isPosNegOne"]], "ispositive() (chapelrange.stridekind method)": [[31, "ChapelRange.strideKind.isPositive"]], "last() (chapelrange.range method)": [[31, "ChapelRange.range.last"]], "lastasint() (chapelrange.range method)": [[31, "ChapelRange.range.lastAsInt"]], "low() (chapelrange.range method)": [[31, "ChapelRange.range.low"]], "lowbound() (chapelrange.range method)": [[31, "ChapelRange.range.lowBound"]], "newrangeliteraltype (in module chapelrange)": [[31, "ChapelRange.newRangeLiteralType"]], "newslicerule (in module chapelrange)": [[31, "ChapelRange.newSliceRule"]], "offset() (chapelrange.range method)": [[31, "ChapelRange.range.offset"]], "ordertoindex() (chapelrange.range method)": [[31, "ChapelRange.range.orderToIndex"]], "size() (chapelrange.range method)": [[31, "ChapelRange.range.size"]], "sizeas() (chapelrange.range method)": [[31, "ChapelRange.range.sizeAs"]], "sizeashelp() (chapelrange.range method)": [[31, "ChapelRange.range.sizeAsHelp"]], "strtype() (chapelrange.range method)": [[31, "ChapelRange.range.strType"]], "stride() (chapelrange.range method)": [[31, "ChapelRange.range.stride"]], "stridekind (enum in chapelrange)": [[31, "ChapelRange.strideKind"]], "strides (chapelrange._range attribute)": [[31, "ChapelRange._range.strides"]], "these() (chapelrange.range iterator)": [[31, "ChapelRange.range.these"]], "translate() (chapelrange.range method)": [[31, "ChapelRange.range.translate"]], "trycast() (chapelrange.range method)": [[31, "ChapelRange.range.tryCast"]], "useoptimizedrangeiterators (in module chapelrange)": [[31, "ChapelRange.useOptimizedRangeIterators"]], "bitwiseandreducescanop (class in chapelreduce)": [[32, "ChapelReduce.BitwiseAndReduceScanOp"]], "bitwiseorreducescanop (class in chapelreduce)": [[32, "ChapelReduce.BitwiseOrReduceScanOp"]], "bitwisexorreducescanop (class in chapelreduce)": [[32, "ChapelReduce.BitwiseXorReduceScanOp"]], "logicalandreducescanop (class in chapelreduce)": [[32, "ChapelReduce.LogicalAndReduceScanOp"]], "logicalorreducescanop (class in chapelreduce)": [[32, "ChapelReduce.LogicalOrReduceScanOp"]], "maxreducescanop (class in chapelreduce)": [[32, "ChapelReduce.MaxReduceScanOp"]], "minreducescanop (class in chapelreduce)": [[32, "ChapelReduce.MinReduceScanOp"]], "productreducescanop (class in chapelreduce)": [[32, "ChapelReduce.ProductReduceScanOp"]], "reducescanop (class in chapelreduce)": [[32, "ChapelReduce.ReduceScanOp"]], "sumreducescanop (class in chapelreduce)": [[32, "ChapelReduce.SumReduceScanOp"]], "_maxloc_id() (in module chapelreduce)": [[32, "ChapelReduce._maxloc_id"]], "_minloc_id() (in module chapelreduce)": [[32, "ChapelReduce._minloc_id"]], "accumulate() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.accumulate"]], "accumulate() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.accumulate"]], "accumulate() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.accumulate"]], "accumulate() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.accumulate"]], "accumulate() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.accumulate"]], "accumulate() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.accumulate"]], "accumulate() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.accumulate"]], "accumulate() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.accumulate"]], "accumulate() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.accumulate"]], "accumulate() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.accumulate"]], "accumulate() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.accumulate"]], "accumulate() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.accumulate"]], "accumulateontostate() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.accumulateOntoState"]], "accumulateontostate() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.accumulateOntoState"]], "accumulateontostate() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.accumulateOntoState"]], "accumulateontostate() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.accumulateOntoState"]], "chpl__accumgen() (in module chapelreduce)": [[32, "ChapelReduce.chpl__accumgen"]], "chpl__cleanuplocalop() (in module chapelreduce)": [[32, "ChapelReduce.chpl__cleanupLocalOp"]], "chpl__reducecombine() (in module chapelreduce)": [[32, "ChapelReduce.chpl__reduceCombine"]], "chpl__scaniterator() (in module chapelreduce)": [[32, "ChapelReduce.chpl__scanIterator"]], "chpl__scaniteratorzip() (in module chapelreduce)": [[32, "ChapelReduce.chpl__scanIteratorZip"]], "chpl__scanstaterestypesmatch() (in module chapelreduce)": [[32, "ChapelReduce.chpl__scanStateResTypesMatch"]], "chpl__sumtype() (in module chapelreduce)": [[32, "ChapelReduce.chpl__sumType"]], "chpl_sumtypeissame() (in module chapelreduce)": [[32, "ChapelReduce.chpl_sumTypeIsSame"]], "clone() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.clone"]], "clone() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.clone"]], "clone() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.clone"]], "clone() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.clone"]], "clone() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.clone"]], "clone() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.clone"]], "clone() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.clone"]], "clone() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.clone"]], "clone() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.clone"]], "clone() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.clone"]], "clone() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.clone"]], "clone() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.clone"]], "combine() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.combine"]], "combine() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.combine"]], "combine() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.combine"]], "combine() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.combine"]], "combine() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.combine"]], "combine() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.combine"]], "combine() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.combine"]], "combine() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.combine"]], "combine() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.combine"]], "combine() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.combine"]], "combine() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.combine"]], "combine() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.combine"]], "elttype (chapelreduce.bitwiseandreducescanop attribute)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.eltType"]], "elttype (chapelreduce.bitwiseorreducescanop attribute)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.eltType"]], "elttype (chapelreduce.bitwisexorreducescanop attribute)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.eltType"]], "elttype (chapelreduce.logicalandreducescanop attribute)": [[32, "ChapelReduce.LogicalAndReduceScanOp.eltType"]], "elttype (chapelreduce.logicalorreducescanop attribute)": [[32, "ChapelReduce.LogicalOrReduceScanOp.eltType"]], "elttype (chapelreduce.maxreducescanop attribute)": [[32, "ChapelReduce.MaxReduceScanOp.eltType"]], "elttype (chapelreduce.minreducescanop attribute)": [[32, "ChapelReduce.MinReduceScanOp.eltType"]], "elttype (chapelreduce.productreducescanop attribute)": [[32, "ChapelReduce.ProductReduceScanOp.eltType"]], "elttype (chapelreduce.sumreducescanop attribute)": [[32, "ChapelReduce.SumReduceScanOp.eltType"]], "elttype (chapelreduce.maxloc attribute)": [[32, "ChapelReduce.maxloc.eltType"]], "elttype (chapelreduce.minloc attribute)": [[32, "ChapelReduce.minloc.eltType"]], "elttype (chapelreduce.minmax attribute)": [[32, "ChapelReduce.minmax.eltType"]], "generate() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.generate"]], "generate() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.generate"]], "generate() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.generate"]], "generate() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.generate"]], "generate() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.generate"]], "generate() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.generate"]], "generate() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.generate"]], "generate() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.generate"]], "generate() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.generate"]], "generate() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.generate"]], "generate() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.generate"]], "generate() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.generate"]], "identity() (chapelreduce.bitwiseandreducescanop method)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.identity"]], "identity() (chapelreduce.bitwiseorreducescanop method)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.identity"]], "identity() (chapelreduce.bitwisexorreducescanop method)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.identity"]], "identity() (chapelreduce.logicalandreducescanop method)": [[32, "ChapelReduce.LogicalAndReduceScanOp.identity"]], "identity() (chapelreduce.logicalorreducescanop method)": [[32, "ChapelReduce.LogicalOrReduceScanOp.identity"]], "identity() (chapelreduce.maxreducescanop method)": [[32, "ChapelReduce.MaxReduceScanOp.identity"]], "identity() (chapelreduce.minreducescanop method)": [[32, "ChapelReduce.MinReduceScanOp.identity"]], "identity() (chapelreduce.productreducescanop method)": [[32, "ChapelReduce.ProductReduceScanOp.identity"]], "identity() (chapelreduce.sumreducescanop method)": [[32, "ChapelReduce.SumReduceScanOp.identity"]], "identity() (chapelreduce.maxloc method)": [[32, "ChapelReduce.maxloc.identity"]], "identity() (chapelreduce.minloc method)": [[32, "ChapelReduce.minloc.identity"]], "identity() (chapelreduce.minmax method)": [[32, "ChapelReduce.minmax.identity"]], "l (chapelreduce.reducescanop attribute)": [[32, "ChapelReduce.ReduceScanOp.l"]], "maxloc (class in chapelreduce)": [[32, "ChapelReduce.maxloc"]], "minloc (class in chapelreduce)": [[32, "ChapelReduce.minloc"]], "minmax (class in chapelreduce)": [[32, "ChapelReduce.minmax"]], "value (chapelreduce.bitwiseandreducescanop attribute)": [[32, "ChapelReduce.BitwiseAndReduceScanOp.value"]], "value (chapelreduce.bitwiseorreducescanop attribute)": [[32, "ChapelReduce.BitwiseOrReduceScanOp.value"]], "value (chapelreduce.bitwisexorreducescanop attribute)": [[32, "ChapelReduce.BitwiseXorReduceScanOp.value"]], "value (chapelreduce.logicalandreducescanop attribute)": [[32, "ChapelReduce.LogicalAndReduceScanOp.value"]], "value (chapelreduce.logicalorreducescanop attribute)": [[32, "ChapelReduce.LogicalOrReduceScanOp.value"]], "value (chapelreduce.maxreducescanop attribute)": [[32, "ChapelReduce.MaxReduceScanOp.value"]], "value (chapelreduce.minreducescanop attribute)": [[32, "ChapelReduce.MinReduceScanOp.value"]], "value (chapelreduce.productreducescanop attribute)": [[32, "ChapelReduce.ProductReduceScanOp.value"]], "value (chapelreduce.sumreducescanop attribute)": [[32, "ChapelReduce.SumReduceScanOp.value"]], "value (chapelreduce.maxloc attribute)": [[32, "ChapelReduce.maxloc.value"]], "value (chapelreduce.minloc attribute)": [[32, "ChapelReduce.minloc.value"]], "value (chapelreduce.minmax attribute)": [[32, "ChapelReduce.minmax.value"]], "__defaultvaluefortype() (in module chapelremotevars)": [[33, "ChapelRemoteVars.__defaultValueForType"]], "_remotevarcontainer (class in chapelremotevars)": [[33, "ChapelRemoteVars._remoteVarContainer"]], "_remotevarwrapper (record in chapelremotevars)": [[33, "ChapelRemoteVars._remoteVarWrapper"]], "chpl__buildremotewrapper() (in module chapelremotevars)": [[33, "ChapelRemoteVars.chpl__buildRemoteWrapper"]], "containedvalue (chapelremotevars._remotevarcontainer attribute)": [[33, "ChapelRemoteVars._remoteVarContainer.containedValue"]], "elttype (chapelremotevars._remotevarwrapper attribute)": [[33, "ChapelRemoteVars._remoteVarWrapper.eltType"]], "get() (chapelremotevars._remotevarwrapper method)": [[33, "ChapelRemoteVars._remoteVarWrapper.get"]], "init() (chapelremotevars._remotevarwrapper method)": [[33, "ChapelRemoteVars._remoteVarWrapper.init"]], "tmp (chapelremotevars._remotevarwrapper attribute)": [[33, "ChapelRemoteVars._remoteVarWrapper.tmp"]], "chpl__broadcastglobal() (in module chapelserializedbroadcast)": [[34, "ChapelSerializedBroadcast.chpl__broadcastGlobal"]], "chpl__destroybroadcastedglobal() (in module chapelserializedbroadcast)": [[34, "ChapelSerializedBroadcast.chpl__destroyBroadcastedGlobal"]], "chpl__enableserializedglobals (in module chapelserializedbroadcast)": [[34, "ChapelSerializedBroadcast.chpl__enableSerializedGlobals"]], "chpl_get_global_serialize_table() (in module chapelserializedbroadcast)": [[34, "ChapelSerializedBroadcast.chpl_get_global_serialize_table"]], "chpl__dynamiccheckshortarraytransfer() (in module chapelshortarraytransfer)": [[35, "ChapelShortArrayTransfer.chpl__dynamicCheckShortArrayTransfer"]], "chpl__staticcheckshortarraytransfer() (in module chapelshortarraytransfer)": [[35, "ChapelShortArrayTransfer.chpl__staticCheckShortArrayTransfer"]], "debugshortarraytransfer (in module chapelshortarraytransfer)": [[35, "ChapelShortArrayTransfer.debugShortArrayTransfer"]], "disableshortarraytransfer (in module chapelshortarraytransfer)": [[35, "ChapelShortArrayTransfer.disableShortArrayTransfer"]], "shortarraytransferthreshold (in module chapelshortarraytransfer)": [[35, "ChapelShortArrayTransfer.shortArrayTransferThreshold"]], "_staticwrapper (record in chapelstaticvars)": [[37, "ChapelStaticVars._staticWrapper"]], "_staticwrappercontainer (class in chapelstaticvars)": [[37, "ChapelStaticVars._staticWrapperContainer"]], "callershouldcomputevalue() (chapelstaticvars._staticwrapper method)": [[37, "ChapelStaticVars._staticWrapper.callerShouldComputeValue"]], "chpl__executestaticwrappercleanupeverywhere() (in module chapelstaticvars)": [[37, "ChapelStaticVars.chpl__executeStaticWrapperCleanupEverywhere"]], "chpl__functionstaticvariablewrappertype() (in module chapelstaticvars)": [[37, "ChapelStaticVars.chpl__functionStaticVariableWrapperType"]], "container (chapelstaticvars._staticwrapper attribute)": [[37, "ChapelStaticVars._staticWrapper.container"]], "getvalue() (chapelstaticvars._staticwrapper method)": [[37, "ChapelStaticVars._staticWrapper.getValue"]], "init() (chapelstaticvars._staticwrapper method)": [[37, "ChapelStaticVars._staticWrapper.init"]], "inited (chapelstaticvars._staticwrapper attribute)": [[37, "ChapelStaticVars._staticWrapper.inited"]], "reset() (chapelstaticvars._staticwrapper method)": [[37, "ChapelStaticVars._staticWrapper.reset"]], "setvalue() (chapelstaticvars._staticwrapper method)": [[37, "ChapelStaticVars._staticWrapper.setValue"]], "sharingkind (enum in chapelstaticvars)": [[37, "ChapelStaticVars.sharingKind"]], "value (chapelstaticvars._staticwrappercontainer attribute)": [[37, "ChapelStaticVars._staticWrapperContainer.value"]], "valuetype (chapelstaticvars._staticwrapper attribute)": [[37, "ChapelStaticVars._staticWrapper.valueType"]], "%=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.%="]], "&=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.&="]], "**=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.**="]], "*=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.*="]], "+=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.+="]], "-=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.-="]], "/=() (in module chapelsyncvar)": [[38, "ChapelSyncvar./="]], ":() (in module chapelsyncvar)": [[38, "ChapelSyncvar.:"]], "<<=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.<<="]], "<=>() (in module chapelsyncvar)": [[38, "ChapelSyncvar.<=>"]], "=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.="]], ">>=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.>>="]], "^=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.^="]], "_qthreads_synccls (class in chapelsyncvar)": [[38, "ChapelSyncvar._qthreads_synccls"]], "_singlecls (class in chapelsyncvar)": [[38, "ChapelSyncvar._singlecls"]], "_singlevar (record in chapelsyncvar)": [[38, "ChapelSyncvar._singlevar"]], "_synccls (class in chapelsyncvar)": [[38, "ChapelSyncvar._synccls"]], "_syncvar (record in chapelsyncvar)": [[38, "ChapelSyncvar._syncvar"]], "alignedvalue (chapelsyncvar._qthreads_synccls attribute)": [[38, "ChapelSyncvar._qthreads_synccls.alignedValue"]], "chpl__autocopy() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__autoCopy"]], "chpl__autodestroy() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__autoDestroy"]], "chpl__compilergeneratedassignsyncsingle() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__compilerGeneratedAssignSyncSingle"]], "chpl__compilergeneratedcopysyncsingle() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__compilerGeneratedCopySyncSingle"]], "chpl__initcopy() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__initCopy"]], "chpl__maybeautodestroyed() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__maybeAutoDestroyed"]], "chpl__readxx() (in module chapelsyncvar)": [[38, "ChapelSyncvar.chpl__readXX"]], "deinit() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.deinit"]], "deinit() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.deinit"]], "deinit() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.deinit"]], "deinit() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.deinit"]], "deinit() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.deinit"]], "deserialize() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.deserialize"]], "deserialize() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.deserialize"]], "deserializefrom() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.deserializeFrom"]], "deserializefrom() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.deserializeFrom"]], "init() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.init"]], "init() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.init"]], "init() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.init"]], "init() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.init"]], "init() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.init"]], "init=() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.init="]], "init=() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.init="]], "isfull() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.isFull"]], "isfull() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.isFull"]], "isfull() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.isFull"]], "isfull() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.isFull"]], "isfull() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.isFull"]], "isowned (chapelsyncvar._singlevar attribute)": [[38, "ChapelSyncvar._singlevar.isOwned"]], "isowned (chapelsyncvar._syncvar attribute)": [[38, "ChapelSyncvar._syncvar.isOwned"]], "readfe() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.readFE"]], "readfe() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.readFE"]], "readfe() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.readFE"]], "readff() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.readFF"]], "readff() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.readFF"]], "readff() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.readFF"]], "readff() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.readFF"]], "readxx() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.readXX"]], "readxx() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.readXX"]], "readxx() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.readXX"]], "readxx() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.readXX"]], "reset() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.reset"]], "reset() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.reset"]], "reset() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.reset"]], "serialize() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.serialize"]], "serialize() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.serialize"]], "singleaux (chapelsyncvar._singlecls attribute)": [[38, "ChapelSyncvar._singlecls.singleAux"]], "syncaux (chapelsyncvar._synccls attribute)": [[38, "ChapelSyncvar._synccls.syncAux"]], "usenativesyncvar (in module chapelsyncvar)": [[38, "ChapelSyncvar.useNativeSyncVar"]], "valtype (chapelsyncvar._qthreads_synccls attribute)": [[38, "ChapelSyncvar._qthreads_synccls.valType"]], "valtype (chapelsyncvar._singlecls attribute)": [[38, "ChapelSyncvar._singlecls.valType"]], "valtype (chapelsyncvar._singlevar attribute)": [[38, "ChapelSyncvar._singlevar.valType"]], "valtype (chapelsyncvar._synccls attribute)": [[38, "ChapelSyncvar._synccls.valType"]], "valtype (chapelsyncvar._syncvar attribute)": [[38, "ChapelSyncvar._syncvar.valType"]], "value (chapelsyncvar._singlecls attribute)": [[38, "ChapelSyncvar._singlecls.value"]], "value (chapelsyncvar._synccls attribute)": [[38, "ChapelSyncvar._synccls.value"]], "wrapped (chapelsyncvar._singlevar attribute)": [[38, "ChapelSyncvar._singlevar.wrapped"]], "wrapped (chapelsyncvar._syncvar attribute)": [[38, "ChapelSyncvar._syncvar.wrapped"]], "writeef() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.writeEF"]], "writeef() (chapelsyncvar._singlecls method)": [[38, "ChapelSyncvar._singlecls.writeEF"]], "writeef() (chapelsyncvar._singlevar method)": [[38, "ChapelSyncvar._singlevar.writeEF"]], "writeef() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.writeEF"]], "writeef() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.writeEF"]], "writeff() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.writeFF"]], "writeff() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.writeFF"]], "writeff() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.writeFF"]], "writexf() (chapelsyncvar._qthreads_synccls method)": [[38, "ChapelSyncvar._qthreads_synccls.writeXF"]], "writexf() (chapelsyncvar._synccls method)": [[38, "ChapelSyncvar._synccls.writeXF"]], "writexf() (chapelsyncvar._syncvar method)": [[38, "ChapelSyncvar._syncvar.writeXF"]], "|=() (in module chapelsyncvar)": [[38, "ChapelSyncvar.|="]], "chpl_task_data_getcommdiagstemporarilydisabled() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_getCommDiagsTemporarilyDisabled"]], "chpl_task_data_getdynamicendcount() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_getDynamicEndCount"]], "chpl_task_data_getnextcostmtserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_getNextCoStmtSerial"]], "chpl_task_data_getserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_getSerial"]], "chpl_task_data_setcommdiagstemporarilydisabled() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_setCommDiagsTemporarilyDisabled"]], "chpl_task_data_setdynamicendcount() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_setDynamicEndCount"]], "chpl_task_data_setnextcostmtserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_setNextCoStmtSerial"]], "chpl_task_data_setserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_data_setSerial"]], "chpl_task_getcommdiagstemporarilydisabled() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_getCommDiagsTemporarilyDisabled"]], "chpl_task_getdynamicendcount() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_getDynamicEndCount"]], "chpl_task_getserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_getSerial"]], "chpl_task_setcommdiagstemporarilydisabled() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_setCommDiagsTemporarilyDisabled"]], "chpl_task_setdynamicendcount() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_setDynamicEndCount"]], "chpl_task_setserial() (in module chapeltaskdata)": [[39, "ChapelTaskData.chpl_task_setSerial"]], "chpl_save_task_error() (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_save_task_error"]], "chpl_save_task_error_owned() (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_save_task_error_owned"]], "chpl_task_data_setup() (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_task_data_setup"]], "chpl_task_getinfochapel() (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_task_getInfoChapel"]], "chpl_task_getinfochapelinbundle() (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_task_getInfoChapelInBundle"]], "chpl_task_infochapel_t (in module chapeltaskdatahelp)": [[40, "ChapelTaskDataHelp.chpl_task_infoChapel_t"]], "!=() (in module chapeltaskid)": [[41, "ChapelTaskID.!="]], ":() (in module chapeltaskid)": [[41, "ChapelTaskID.:"]], "=() (in module chapeltaskid)": [[41, "ChapelTaskID.="]], "==() (in module chapeltaskid)": [[41, "ChapelTaskID.=="]], "chpl_task_getenvnumthreadsperlocale() (in module chapelthreads)": [[42, "ChapelThreads.chpl_task_getenvNumThreadsPerLocale"]], "numthreadsperlocale (in module chapelthreads)": [[42, "ChapelThreads.numThreadsPerLocale"]], "!() (in module chapeltuple)": [[43, "ChapelTuple.!"]], "!=() (in module chapeltuple)": [[43, "ChapelTuple.!="]], "%() (in module chapeltuple)": [[43, "ChapelTuple.%"]], "&() (in module chapeltuple)": [[43, "ChapelTuple.&"]], "*() (in module chapeltuple)": [[43, "ChapelTuple.*"]], "**() (in module chapeltuple)": [[43, "ChapelTuple.**"]], "+() (in module chapeltuple)": [[43, "ChapelTuple.+"]], "-() (in module chapeltuple)": [[43, "ChapelTuple.-"]], "/() (in module chapeltuple)": [[43, "ChapelTuple./"]], ":() (in module chapeltuple)": [[43, "ChapelTuple.:"]], "<() (in module chapeltuple)": [[43, "ChapelTuple.<"]], "<<() (in module chapeltuple)": [[43, "ChapelTuple.<<"]], "<=() (in module chapeltuple)": [[43, "ChapelTuple.<="]], "=() (in module chapeltuple)": [[43, "ChapelTuple.="]], "==() (in module chapeltuple)": [[43, "ChapelTuple.=="]], ">() (in module chapeltuple)": [[43, "ChapelTuple.>"]], ">=() (in module chapeltuple)": [[43, "ChapelTuple.>="]], ">>() (in module chapeltuple)": [[43, "ChapelTuple.>>"]], "chpl_warn_tuple_iteration (in module chapeltuple)": [[43, "ChapelTuple.CHPL_WARN_TUPLE_ITERATION"]], "^() (in module chapeltuple)": [[43, "ChapelTuple.^"]], "_build_star_tuple_noref() (in module chapeltuple)": [[43, "ChapelTuple._build_star_tuple_noref"]], "_build_tuple() (in module chapeltuple)": [[43, "ChapelTuple._build_tuple"]], "_build_tuple_always_allow_ref() (in module chapeltuple)": [[43, "ChapelTuple._build_tuple_always_allow_ref"]], "_build_tuple_noref() (in module chapeltuple)": [[43, "ChapelTuple._build_tuple_noref"]], "_check_tuple_var_decl() (in module chapeltuple)": [[43, "ChapelTuple._check_tuple_var_decl"]], "_tuple (record in chapeltuple)": [[43, "ChapelTuple._tuple"]], "chpl_twohomogtuples() (in module chapeltuple)": [[43, "ChapelTuple.chpl_TwoHomogTuples"]], "chpl__init_tuple() (in module chapeltuple)": [[43, "ChapelTuple.chpl__init_tuple"]], "chpl__tuplerest() (in module chapeltuple)": [[43, "ChapelTuple.chpl__tupleRest"]], "chpl__tuplify() (in module chapeltuple)": [[43, "ChapelTuple.chpl__tuplify"]], "chpl__unref() (in module chapeltuple)": [[43, "ChapelTuple.chpl__unref"]], "indices() (chapeltuple._tuple method)": [[43, "ChapelTuple._tuple.indices"]], "max() (in module chapeltuple)": [[43, "ChapelTuple.max"]], "min() (in module chapeltuple)": [[43, "ChapelTuple.min"]], "size (chapeltuple._tuple attribute)": [[43, "ChapelTuple._tuple.size"]], "these() (chapeltuple._tuple iterator)": [[43, "ChapelTuple._tuple.these"]], "this() (chapeltuple._tuple method)": [[43, "ChapelTuple._tuple.this"]], "|() (in module chapeltuple)": [[43, "ChapelTuple.|"]], "~() (in module chapeltuple)": [[43, "ChapelTuple.~"]], "_command_line_cast() (in module chapelutil)": [[44, "ChapelUtil._command_line_cast"]], "allocate_string_literals_buf() (in module chapelutil)": [[44, "ChapelUtil.allocate_string_literals_buf"]], "argc (chapelutil.chpl_main_argument attribute)": [[44, "ChapelUtil.chpl_main_argument.argc"]], "chpl_addmodule() (in module chapelutil)": [[44, "ChapelUtil.chpl_addModule"]], "chpl_convert_args() (in module chapelutil)": [[44, "ChapelUtil.chpl_convert_args"]], "chpl_deinitmodules() (in module chapelutil)": [[44, "ChapelUtil.chpl_deinitModules"]], "chpl_get_mli_connection() (in module chapelutil)": [[44, "ChapelUtil.chpl_get_mli_connection"]], "chpl_main_argument (record in chapelutil)": [[44, "ChapelUtil.chpl_main_argument"]], "chpl_rt_postusercodehook() (in module chapelutil)": [[44, "ChapelUtil.chpl_rt_postUserCodeHook"]], "chpl_rt_preusercodehook() (in module chapelutil)": [[44, "ChapelUtil.chpl_rt_preUserCodeHook"]], "deallocate_string_literals_buf() (in module chapelutil)": [[44, "ChapelUtil.deallocate_string_literals_buf"]], "printmoduledeinitorder (in module chapelutil)": [[44, "ChapelUtil.printModuleDeinitOrder"]], "return_value (chapelutil.chpl_main_argument attribute)": [[44, "ChapelUtil.chpl_main_argument.return_value"]], "safeadd() (in module chapelutil)": [[44, "ChapelUtil.safeAdd"]], "safemul() (in module chapelutil)": [[44, "ChapelUtil.safeMul"]], "safesub() (in module chapelutil)": [[44, "ChapelUtil.safeSub"]], "defaultassociativearr (class in defaultassociative)": [[45, "DefaultAssociative.DefaultAssociativeArr"]], "defaultassociativedom (class in defaultassociative)": [[45, "DefaultAssociative.DefaultAssociativeDom"]], "defaultassociativedomrehashhelper (class in defaultassociative)": [[45, "DefaultAssociative.DefaultAssociativeDomRehashHelper"]], "_add() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom._add"]], "_defaultinitslot() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._defaultInitSlot"]], "_deinitelement() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._deinitElement"]], "_deinitslot() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._deinitSlot"]], "_dodefaultinitslot() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._doDefaultInitSlot"]], "_elementneedsdeinit() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._elementNeedsDeinit"]], "_finishrehash() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._finishRehash"]], "_fullslots() (defaultassociative.defaultassociativedom iterator)": [[45, "DefaultAssociative.DefaultAssociativeDom._fullSlots"]], "_isslotfull() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom._isSlotFull"]], "_moveelementduringrehash() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._moveElementDuringRehash"]], "_startrehash() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr._startRehash"]], "chpl_serialreadwriteassociativehelper() (in module defaultassociative)": [[45, "DefaultAssociative.chpl_serialReadWriteAssociativeHelper"]], "data (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.data"]], "datasize (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.dataSize"]], "debugassocdatapar (in module defaultassociative)": [[45, "DefaultAssociative.debugAssocDataPar"]], "debugdefaultassoc (in module defaultassociative)": [[45, "DefaultAssociative.debugDefaultAssoc"]], "defaultassociativesupportsautolocalaccess (in module defaultassociative)": [[45, "DefaultAssociative.defaultAssociativeSupportsAutoLocalAccess"]], "deinit() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.deinit"]], "deinit() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.deinit"]], "dist (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.dist"]], "dom (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.dom"]], "dom (defaultassociative.defaultassociativedomrehashhelper attribute)": [[45, "DefaultAssociative.DefaultAssociativeDomRehashHelper.dom"]], "dsiaccess() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiAccess"]], "dsiadd() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiAdd"]], "dsiassigndomain() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiAssignDomain"]], "dsibuildarray() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiBuildArray"]], "dsiclear() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiClear"]], "dsidestroyarr() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiDestroyArr"]], "dsielementdeinitializationcomplete() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiElementDeinitializationComplete"]], "dsielementinitializationcomplete() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiElementInitializationComplete"]], "dsigetbasedom() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiGetBaseDom"]], "dsihassinglelocalsubdomain() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiHasSingleLocalSubdomain"]], "dsihassinglelocalsubdomain() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiHasSingleLocalSubdomain"]], "dsiindsitersafeforremoving() (defaultassociative.defaultassociativedom iterator)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiIndsIterSafeForRemoving"]], "dsilinksdistribution() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiLinksDistribution"]], "dsilocalaccess() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiLocalAccess"]], "dsilocalsubdomain() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiLocalSubdomain"]], "dsilocalsubdomain() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiLocalSubdomain"]], "dsimember() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiMember"]], "dsimydist() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiMyDist"]], "dsinumindices() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiNumIndices"]], "dsiremove() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiRemove"]], "dsirequestcapacity() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiRequestCapacity"]], "dsiserialread() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiSerialRead"]], "dsiserialread() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiSerialRead"]], "dsiserialreadwrite() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiSerialReadWrite"]], "dsiserialwrite() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiSerialWrite"]], "dsiserialwrite() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiSerialWrite"]], "dsisorted() (defaultassociative.defaultassociativearr iterator)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiSorted"]], "dsisorted() (defaultassociative.defaultassociativedom iterator)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiSorted"]], "dsisupportsautolocalaccess() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiSupportsAutoLocalAccess"]], "dsitargetlocales() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.dsiTargetLocales"]], "dsitargetlocales() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.dsiTargetLocales"]], "eltsneeddeinit (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.eltsNeedDeinit"]], "finishrehash() (defaultassociative.defaultassociativedomrehashhelper method)": [[45, "DefaultAssociative.DefaultAssociativeDomRehashHelper.finishRehash"]], "idxtype (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.idxType"]], "idxtype (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.idxType"]], "init() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.init"]], "init() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.init"]], "linksdistribution() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.linksDistribution"]], "locktable() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.lockTable"]], "moveelementduringrehash() (defaultassociative.defaultassociativedomrehashhelper method)": [[45, "DefaultAssociative.DefaultAssociativeDomRehashHelper.moveElementDuringRehash"]], "numentries (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.numEntries"]], "parsafe (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.parSafe"]], "parsafedom (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.parSafeDom"]], "rank() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.rank"]], "readchapelstyleassocarray() (defaultassociative.defaultassociativearr method)": [[45, "DefaultAssociative.DefaultAssociativeArr.readChapelStyleAssocArray"]], "startrehash() (defaultassociative.defaultassociativedomrehashhelper method)": [[45, "DefaultAssociative.DefaultAssociativeDomRehashHelper.startRehash"]], "table (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.table"]], "tablelock (defaultassociative.defaultassociativedom attribute)": [[45, "DefaultAssociative.DefaultAssociativeDom.tableLock"]], "these() (defaultassociative.defaultassociativearr iterator)": [[45, "DefaultAssociative.DefaultAssociativeArr.these"]], "these() (defaultassociative.defaultassociativedom iterator)": [[45, "DefaultAssociative.DefaultAssociativeDom.these"]], "tmpdata (defaultassociative.defaultassociativearr attribute)": [[45, "DefaultAssociative.DefaultAssociativeArr.tmpData"]], "unlocktable() (defaultassociative.defaultassociativedom method)": [[45, "DefaultAssociative.DefaultAssociativeDom.unlockTable"]], "arraystorageorder (enum in defaultrectangular)": [[46, "DefaultRectangular.ArrayStorageOrder"]], "defaultdist (class in defaultrectangular)": [[46, "DefaultRectangular.DefaultDist"]], "defaultrectangulararr (class in defaultrectangular)": [[46, "DefaultRectangular.DefaultRectangularArr"]], "defaultrectangulardom (class in defaultrectangular)": [[46, "DefaultRectangular.DefaultRectangularDom"]], "defaultrectangulardom._serialized_domain (record in defaultrectangular)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain"]], "locradcache (class in defaultrectangular)": [[46, "DefaultRectangular.LocRADCache"]], "rad (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.RAD"]], "radlocks (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.RADLocks"]], "_borrowed (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr._borrowed"]], "_remoteaccessdata (record in defaultrectangular)": [[46, "DefaultRectangular._remoteAccessData"]], "_supportsbulkelements() (in module defaultrectangular)": [[46, "DefaultRectangular._supportsBulkElements"]], "_supportsserializers() (in module defaultrectangular)": [[46, "DefaultRectangular._supportsSerializers"]], "adjustblkoffstrfornewdomain() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.adjustBlkOffStrForNewDomain"]], "blk (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.blk"]], "blk (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.blk"]], "blkchanged (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.blkChanged"]], "callpostalloc (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.callPostAlloc"]], "chpl__deserialize() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.chpl__deserialize"]], "chpl__inttoidx() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl__intToIdx"]], "chpl__postscan() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.chpl__postScan"]], "chpl__prescan() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.chpl__preScan"]], "chpl__serialviewiter() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl__serialViewIter"]], "chpl__serialviewiter1d() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl__serialViewIter1D"]], "chpl__serialviewiterhelper() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl__serialViewIterHelper"]], "chpl__serialize() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.chpl__serialize"]], "chpl_defaultdistinitprivate() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl_defaultDistInitPrivate"]], "chpl_inttoidx() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.chpl_intToIdx"]], "chpl_integralidxtype() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.chpl_integralIdxType"]], "chpl_integralidxtype() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.chpl_integralIdxType"]], "chpl_serialreadwriterectangular() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl_serialReadWriteRectangular"]], "chpl_serialreadwriterectangularhelper() (in module defaultrectangular)": [[46, "DefaultRectangular.chpl_serialReadWriteRectangularHelper"]], "chpl_unsafeassignisclasselementnil() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.chpl_unsafeAssignIsClassElementNil"]], "computefactoredoffs() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.computeFactoredOffs"]], "computefactoredoffs() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.computeFactoredOffs"]], "data (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.data"]], "data (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.data"]], "dataelem() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.dataElem"]], "dataparignorerunningtasks (in module defaultrectangular)": [[46, "DefaultRectangular.dataParIgnoreRunningTasks"]], "dataparmingranularity (in module defaultrectangular)": [[46, "DefaultRectangular.dataParMinGranularity"]], "datapartasksperlocale (in module defaultrectangular)": [[46, "DefaultRectangular.dataParTasksPerLocale"]], "debugdrscan (in module defaultrectangular)": [[46, "DefaultRectangular.debugDRScan"]], "debugdatapar (in module defaultrectangular)": [[46, "DefaultRectangular.debugDataPar"]], "debugdataparnuma (in module defaultrectangular)": [[46, "DefaultRectangular.debugDataParNuma"]], "debugdefaultdist (in module defaultrectangular)": [[46, "DefaultRectangular.debugDefaultDist"]], "debugdefaultdistbulktransfer (in module defaultrectangular)": [[46, "DefaultRectangular.debugDefaultDistBulkTransfer"]], "defaultdisablelazyradopt (in module defaultrectangular)": [[46, "DefaultRectangular.defaultDisableLazyRADOpt"]], "defaultdist (in module defaultrectangular)": [[46, "DefaultRectangular.defaultDist"]], "defaultdoradopt (in module defaultrectangular)": [[46, "DefaultRectangular.defaultDoRADOpt"]], "defaultrectangularsupportsautolocalaccess (in module defaultrectangular)": [[46, "DefaultRectangular.defaultRectangularSupportsAutoLocalAccess"]], "defaultstorageorder (in module defaultrectangular)": [[46, "DefaultRectangular.defaultStorageOrder"]], "deinitelts (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.deinitElts"]], "dims (defaultrectangular.defaultrectangulardom._serialized_domain attribute)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain.dims"]], "disablearrrealloc (in module defaultrectangular)": [[46, "DefaultRectangular.disableArrRealloc"]], "dist (defaultrectangular.defaultrectangulardom attribute)": [[46, "DefaultRectangular.DefaultRectangularDom.dist"]], "doibulktransferfromknown() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.doiBulkTransferFromKnown"]], "doibulktransfertoknown() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.doiBulkTransferToKnown"]], "doicanbulktransferrankchange() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.doiCanBulkTransferRankChange"]], "doioptimizedswap() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.doiOptimizedSwap"]], "doiscan() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.doiScan"]], "doitostring() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.doiToString"]], "doitrycreatearray() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.doiTryCreateArray"]], "dom (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.dom"]], "dsiaccess() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiAccess"]], "dsialignedhigh() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiAlignedHigh"]], "dsialignedlow() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiAlignedLow"]], "dsialignment() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiAlignment"]], "dsiassign() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiAssign"]], "dsiassigndomain() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiAssignDomain"]], "dsiboundscheck() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiBoundsCheck"]], "dsibuildarray() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiBuildArray"]], "dsibuildarraywith() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiBuildArrayWith"]], "dsiclone() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiClone"]], "dsidestroyarr() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiDestroyArr"]], "dsidim() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiDim"]], "dsidims() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiDims"]], "dsidisplayrepresentation() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiDisplayRepresentation"]], "dsidisplayrepresentation() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiDisplayRepresentation"]], "dsielementdeinitializationcomplete() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiElementDeinitializationComplete"]], "dsielementinitializationcomplete() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiElementInitializationComplete"]], "dsiequaldmaps() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiEqualDMaps"]], "dsifirst() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiFirst"]], "dsigetbasedom() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiGetBaseDom"]], "dsigetindices() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiGetIndices"]], "dsigetrad() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiGetRAD"]], "dsihassinglelocalsubdomain() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiHasSingleLocalSubdomain"]], "dsihassinglelocalsubdomain() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiHasSingleLocalSubdomain"]], "dsihigh() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiHigh"]], "dsiindexorder() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiIndexOrder"]], "dsiindextolocale() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiIndexToLocale"]], "dsiislayout() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiIsLayout"]], "dsiiteratoryieldslocalelements() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiIteratorYieldsLocalElements"]], "dsilast() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLast"]], "dsilinksdistribution() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLinksDistribution"]], "dsilocalslice() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiLocalSlice"]], "dsilocalslice() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLocalSlice"]], "dsilocalsubdomain() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiLocalSubdomain"]], "dsilocalsubdomain() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLocalSubdomain"]], "dsilocalsubdomains() (defaultrectangular.defaultrectangulararr iterator)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiLocalSubdomains"]], "dsilocalsubdomains() (defaultrectangular.defaultrectangulardom iterator)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLocalSubdomains"]], "dsilow() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiLow"]], "dsimember() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiMember"]], "dsimydist() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiMyDist"]], "dsinewassociativedom() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiNewAssociativeDom"]], "dsinewrectangulardom() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiNewRectangularDom"]], "dsinewsparsedom() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiNewSparseDom"]], "dsinumindices() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiNumIndices"]], "dsipostreallocate() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiPostReallocate"]], "dsireallocate() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiReallocate"]], "dsiserialread() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiSerialRead"]], "dsiserialread() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiSerialRead"]], "dsiserialreadwrite() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiSerialReadWrite"]], "dsiserialreadwrite() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiSerialReadWrite"]], "dsiserialwrite() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiSerialWrite"]], "dsiserialwrite() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiSerialWrite"]], "dsisetindices() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiSetIndices"]], "dsistride() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiStride"]], "dsisupportsautolocalaccess() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiSupportsAutoLocalAccess"]], "dsitargetlocales() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiTargetLocales"]], "dsitargetlocales() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.dsiTargetLocales"]], "dsitargetlocales() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.dsiTargetLocales"]], "dsitrackdomains() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.dsiTrackDomains"]], "earlyshiftdata (in module defaultrectangular)": [[46, "DefaultRectangular.earlyShiftData"]], "elttype (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.eltType"]], "elttype (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.eltType"]], "enableparallelgetsinassignment (in module defaultrectangular)": [[46, "DefaultRectangular.enableParallelGetsInAssignment"]], "enableparallelputsinassignment (in module defaultrectangular)": [[46, "DefaultRectangular.enableParallelPutsInAssignment"]], "externarr (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.externArr"]], "externfreefunc (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.externFreeFunc"]], "factoredoffs (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.factoredOffs"]], "factoredoffs (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.factoredOffs"]], "getdataelem() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.getDataElem"]], "getdataindex() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.getDataIndex"]], "getdataindex() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.getDataIndex"]], "hasunitstride() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.hasUnitStride"]], "idxsignedtype (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.idxSignedType"]], "idxtype (defaultrectangular.defaultrectangulardom._serialized_domain attribute)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain.idxType"]], "idxtype (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.idxType"]], "idxtype (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.idxType"]], "init() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.init"]], "init() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.init"]], "init() (defaultrectangular.locradcache method)": [[46, "DefaultRectangular.LocRADCache.init"]], "initdatafrom() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.initDataFrom"]], "initshifteddata() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.initShiftedData"]], "initshifteddata() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.initShiftedData"]], "isdatacontiguous() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.isDataContiguous"]], "isdefaultrectangular (defaultrectangular.defaultrectangulardom._serialized_domain attribute)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain.isDefaultRectangular"]], "isdefaultrectangular() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.isDefaultRectangular"]], "isdefaultrectangular() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.isDefaultRectangular"]], "linksdistribution() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.linksDistribution"]], "lockrad() (defaultrectangular.locradcache method)": [[46, "DefaultRectangular.LocRADCache.lockRAD"]], "off (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.off"]], "off (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.off"]], "origin (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.origin"]], "parsafe() (defaultrectangular.defaultrectangulardom method)": [[46, "DefaultRectangular.DefaultRectangularDom.parSafe"]], "parallelassignthreshold (in module defaultrectangular)": [[46, "DefaultRectangular.parallelAssignThreshold"]], "polly_array_index() (in module defaultrectangular)": [[46, "DefaultRectangular.polly_array_index"]], "ranges (defaultrectangular.defaultrectangulardom attribute)": [[46, "DefaultRectangular.DefaultRectangularDom.ranges"]], "rank (defaultrectangular.defaultrectangulardom._serialized_domain attribute)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain.rank"]], "rank (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.rank"]], "rank (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.rank"]], "reportinplacerealloc (in module defaultrectangular)": [[46, "DefaultRectangular.reportInPlaceRealloc"]], "setupfieldsandallocate() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.setupFieldsAndAllocate"]], "shifteddata (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.shiftedData"]], "shifteddata (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.shiftedData"]], "shifteddataelem() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.shiftedDataElem"]], "singleton() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.singleton"]], "sizesperdim (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.sizesPerDim"]], "storageorder (in module defaultrectangular)": [[46, "DefaultRectangular.storageOrder"]], "str (defaultrectangular.defaultrectangulararr attribute)": [[46, "DefaultRectangular.DefaultRectangularArr.str"]], "str (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.str"]], "stridealigndown() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.strideAlignDown"]], "stridealignup() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.strideAlignUp"]], "strides (defaultrectangular.defaultrectangulardom._serialized_domain attribute)": [[46, "DefaultRectangular.DefaultRectangularDom._serialized_domain.strides"]], "strides (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.strides"]], "strides (defaultrectangular._remoteaccessdata attribute)": [[46, "DefaultRectangular._remoteAccessData.strides"]], "targetlocdom (defaultrectangular.locradcache attribute)": [[46, "DefaultRectangular.LocRADCache.targetLocDom"]], "thedata() (defaultrectangular.defaultrectangulararr method)": [[46, "DefaultRectangular.DefaultRectangularArr.theData"]], "thedata() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.theData"]], "these() (defaultrectangular.defaultrectangulararr iterator)": [[46, "DefaultRectangular.DefaultRectangularArr.these"]], "these() (defaultrectangular.defaultrectangulardom iterator)": [[46, "DefaultRectangular.DefaultRectangularDom.these"]], "these_help() (defaultrectangular.defaultrectangulardom iterator)": [[46, "DefaultRectangular.DefaultRectangularDom.these_help"]], "torankchange() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.toRankChange"]], "toreindex() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.toReindex"]], "toslice() (defaultrectangular._remoteaccessdata method)": [[46, "DefaultRectangular._remoteAccessData.toSlice"]], "trackdomains() (defaultrectangular.defaultdist method)": [[46, "DefaultRectangular.DefaultDist.trackDomains"]], "unlockrad() (defaultrectangular.locradcache method)": [[46, "DefaultRectangular.LocRADCache.unlockRAD"]], "usepollyarrayindex (in module defaultrectangular)": [[46, "DefaultRectangular.usePollyArrayIndex"]], "defaultsparsearr (class in defaultsparse)": [[47, "DefaultSparse.DefaultSparseArr"]], "defaultsparsedom (class in defaultsparse)": [[47, "DefaultSparse.DefaultSparseDom"]], "_indices (defaultsparse.defaultsparsedom attribute)": [[47, "DefaultSparse.DefaultSparseDom._indices"]], "_nnz (defaultsparse.defaultsparsedom attribute)": [[47, "DefaultSparse.DefaultSparseDom._nnz"]], "add_help() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.add_help"]], "bulkadd_help() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.bulkAdd_help"]], "debugdefaultsparse (in module defaultsparse)": [[47, "DefaultSparse.debugDefaultSparse"]], "defaultsparsesupportsautolocalaccess (in module defaultsparse)": [[47, "DefaultSparse.defaultSparseSupportsAutoLocalAccess"]], "dimiter() (defaultsparse.defaultsparsedom iterator)": [[47, "DefaultSparse.DefaultSparseDom.dimIter"]], "dist (defaultsparse.defaultsparsedom attribute)": [[47, "DefaultSparse.DefaultSparseDom.dist"]], "doibulktransferfromknown() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.doiBulkTransferFromKnown"]], "doibulktransfertoknown() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.doiBulkTransferToKnown"]], "dsiaccess() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.dsiAccess"]], "dsiadd() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiAdd"]], "dsiassigndomain() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiAssignDomain"]], "dsibuildarray() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiBuildArray"]], "dsiclear() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiClear"]], "dsifirst() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiFirst"]], "dsihassinglelocalsubdomain() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.dsiHasSingleLocalSubdomain"]], "dsihassinglelocalsubdomain() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiHasSingleLocalSubdomain"]], "dsiindsitersafeforremoving() (defaultsparse.defaultsparsedom iterator)": [[47, "DefaultSparse.DefaultSparseDom.dsiIndsIterSafeForRemoving"]], "dsilast() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiLast"]], "dsilinksdistribution() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiLinksDistribution"]], "dsilocalsubdomain() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.dsiLocalSubdomain"]], "dsilocalsubdomain() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiLocalSubdomain"]], "dsimember() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiMember"]], "dsimydist() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiMyDist"]], "dsiremove() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiRemove"]], "dsiserialwrite() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.dsiSerialWrite"]], "dsiserialwrite() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiSerialWrite"]], "dsisupportsautolocalaccess() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiSupportsAutoLocalAccess"]], "dsitargetlocales() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.dsiTargetLocales"]], "dsitargetlocales() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.dsiTargetLocales"]], "find() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.find"]], "getnnz() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.getNNZ"]], "init() (defaultsparse.defaultsparsearr method)": [[47, "DefaultSparse.DefaultSparseArr.init"]], "init() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.init"]], "linksdistribution() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.linksDistribution"]], "parsafe() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.parSafe"]], "rem_help() (defaultsparse.defaultsparsedom method)": [[47, "DefaultSparse.DefaultSparseDom.rem_help"]], "these() (defaultsparse.defaultsparsearr iterator)": [[47, "DefaultSparse.DefaultSparseArr.these"]], "these() (defaultsparse.defaultsparsedom iterator)": [[47, "DefaultSparse.DefaultSparseDom.these"]], "chpl__exportarg() (in module exportwrappers)": [[48, "ExportWrappers.chpl__exportArg"]], "chpl__exportret() (in module exportwrappers)": [[48, "ExportWrappers.chpl__exportRet"]], "chpl__exportretstringorbytes() (in module exportwrappers)": [[48, "ExportWrappers.chpl__exportRetStringOrBytes"]], "chpl__exporttypechplbytebuffer (in module exportwrappers)": [[48, "ExportWrappers.chpl__exportTypeChplByteBuffer"]], "chpl_byte_buffer (record in exportwrappers)": [[48, "ExportWrappers.chpl_byte_buffer"]], "chpl_byte_buffer_free() (in module exportwrappers)": [[48, "ExportWrappers.chpl_byte_buffer_free"]], "chpl_librarymodulelevelcleanup() (in module exportwrappers)": [[48, "ExportWrappers.chpl_libraryModuleLevelCleanup"]], "chpl_librarymodulelevelsetup() (in module exportwrappers)": [[48, "ExportWrappers.chpl_libraryModuleLevelSetup"]], "data (exportwrappers.chpl_byte_buffer attribute)": [[48, "ExportWrappers.chpl_byte_buffer.data"]], "isowned (exportwrappers.chpl_byte_buffer attribute)": [[48, "ExportWrappers.chpl_byte_buffer.isOwned"]], "size (exportwrappers.chpl_byte_buffer attribute)": [[48, "ExportWrappers.chpl_byte_buffer.size"]], "_instance (externalarray.chpl_opaque_array attribute)": [[49, "ExternalArray.chpl_opaque_array._instance"]], "_pid (externalarray.chpl_opaque_array attribute)": [[49, "ExternalArray.chpl_opaque_array._pid"]], "_unowned (externalarray.chpl_opaque_array attribute)": [[49, "ExternalArray.chpl_opaque_array._unowned"]], "chpl_call_free_func() (in module externalarray)": [[49, "ExternalArray.chpl_call_free_func"]], "chpl_external_array (record in externalarray)": [[49, "ExternalArray.chpl_external_array"]], "chpl_free_external_array() (in module externalarray)": [[49, "ExternalArray.chpl_free_external_array"]], "chpl_make_external_array() (in module externalarray)": [[49, "ExternalArray.chpl_make_external_array"]], "chpl_make_external_array_ptr() (in module externalarray)": [[49, "ExternalArray.chpl_make_external_array_ptr"]], "chpl_make_external_array_ptr_free() (in module externalarray)": [[49, "ExternalArray.chpl_make_external_array_ptr_free"]], "chpl_opaque_array (record in externalarray)": [[49, "ExternalArray.chpl_opaque_array"]], "cleanupopaquearray() (in module externalarray)": [[49, "ExternalArray.cleanupOpaqueArray"]], "convertstringorbytes() (in module externalarray)": [[49, "ExternalArray.convertStringOrBytes"]], "converttoexternalarray() (in module externalarray)": [[49, "ExternalArray.convertToExternalArray"]], "elts (externalarray.chpl_external_array attribute)": [[49, "ExternalArray.chpl_external_array.elts"]], "freer (externalarray.chpl_external_array attribute)": [[49, "ExternalArray.chpl_external_array.freer"]], "getexternalarraytype() (in module externalarray)": [[49, "ExternalArray.getExternalArrayType"]], "makearrayfromexternarray() (in module externalarray)": [[49, "ExternalArray.makeArrayFromExternArray"]], "makearrayfromopaque() (in module externalarray)": [[49, "ExternalArray.makeArrayFromOpaque"]], "makearrayfromptr() (in module externalarray)": [[49, "ExternalArray.makeArrayFromPtr"]], "num_elts (externalarray.chpl_external_array attribute)": [[49, "ExternalArray.chpl_external_array.num_elts"]], "cfi_error_base_addr_not_null (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_ERROR_BASE_ADDR_NOT_NULL"]], "cfi_error_base_addr_null (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_ERROR_BASE_ADDR_NULL"]], "cfi_error_mem_allocation (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_ERROR_MEM_ALLOCATION"]], "cfi_error_out_of_bounds (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_ERROR_OUT_OF_BOUNDS"]], "cfi_invalid_attribute (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_ATTRIBUTE"]], "cfi_invalid_descriptor (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_DESCRIPTOR"]], "cfi_invalid_elem_len (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_ELEM_LEN"]], "cfi_invalid_extent (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_EXTENT"]], "cfi_invalid_rank (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_RANK"]], "cfi_invalid_type (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_INVALID_TYPE"]], "cfi_max_rank (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_MAX_RANK"]], "cfi_success (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_SUCCESS"]], "cfi_version (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_VERSION"]], "cfi__version_0001 (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI__VERSION_0001"]], "cfi__max_attribute (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI__max_attribute"]], "cfi__max_type (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI__max_type"]], "cfi_address() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_address"]], "cfi_allocate() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_allocate"]], "cfi_attribute_allocatable (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_attribute_allocatable"]], "cfi_attribute_other (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_attribute_other"]], "cfi_attribute_pointer (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_attribute_pointer"]], "cfi_attribute_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_attribute_t"]], "cfi_cdesc_t (record in iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_cdesc_t"]], "cfi_deallocate() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_deallocate"]], "cfi_dim_t (record in iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_dim_t"]], "cfi_establish() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_establish"]], "cfi_index_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_index_t"]], "cfi_is_contiguous() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_is_contiguous"]], "cfi_rank_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_rank_t"]], "cfi_section() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_section"]], "cfi_select_part() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_select_part"]], "cfi_setpointer() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_setpointer"]], "cfi_type_bool (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_Bool"]], "cfi_type_char (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_char"]], "cfi_type_cptr (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_cptr"]], "cfi_type_double (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_double"]], "cfi_type_double_complex (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_double_Complex"]], "cfi_type_float (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_float"]], "cfi_type_int (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int"]], "cfi_type_int16_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int16_t"]], "cfi_type_int32_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int32_t"]], "cfi_type_int64_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int64_t"]], "cfi_type_int8_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int8_t"]], "cfi_type_int_fast16_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_fast16_t"]], "cfi_type_int_fast32_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_fast32_t"]], "cfi_type_int_fast64_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_fast64_t"]], "cfi_type_int_fast8_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_fast8_t"]], "cfi_type_int_least16_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_least16_t"]], "cfi_type_int_least32_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_least32_t"]], "cfi_type_int_least64_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_least64_t"]], "cfi_type_int_least8_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_int_least8_t"]], "cfi_type_intmax_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_intmax_t"]], "cfi_type_intptr_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_intptr_t"]], "cfi_type_long (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_long"]], "cfi_type_long_double (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_long_double"]], "cfi_type_long_double_complex (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_long_double_Complex"]], "cfi_type_long_long (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_long_long"]], "cfi_type_other (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_other"]], "cfi_type_ptrdiff_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_ptrdiff_t"]], "cfi_type_short (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_short"]], "cfi_type_signed_char (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_signed_char"]], "cfi_type_size_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_size_t"]], "cfi_type_struct (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_struct"]], "cfi_type_t (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.CFI_type_t"]], "attribute (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.attribute"]], "base_addr (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.base_addr"]], "ctype (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.ctype"]], "dim (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.dim"]], "elem_len (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.elem_len"]], "extent (iso_fortran_binding.cfi_dim_t attribute)": [[50, "ISO_Fortran_binding.CFI_dim_t.extent"]], "for_cfi_address() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_address"]], "for_cfi_allocate() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_allocate"]], "for_cfi_deallocate() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_deallocate"]], "for_cfi_establish() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_establish"]], "for_cfi_is_contiguous() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_is_contiguous"]], "for_cfi_section() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_section"]], "for_cfi_select_part() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_select_part"]], "for_cfi_setpointer() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.for_CFI_setpointer"]], "lower_bound (iso_fortran_binding.cfi_dim_t attribute)": [[50, "ISO_Fortran_binding.CFI_dim_t.lower_bound"]], "makearrayfromfortranarray() (in module iso_fortran_binding)": [[50, "ISO_Fortran_binding.makeArrayFromFortranArray"]], "rank (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.rank"]], "sm (iso_fortran_binding.cfi_dim_t attribute)": [[50, "ISO_Fortran_binding.CFI_dim_t.sm"]], "version (iso_fortran_binding.cfi_cdesc_t attribute)": [[50, "ISO_Fortran_binding.CFI_cdesc_t.version"]], "chpl_dodirectexecuteon() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_doDirectExecuteOn"]], "chpl_executeon() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_executeOn"]], "chpl_executeonfast() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_executeOnFast"]], "chpl_executeonnb() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_executeOnNB"]], "chpl_getsubloc() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_getSubloc"]], "chpl_task_setsubloc() (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.chpl_task_setSubloc"]], "debugapulocale (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.debugAPULocale"]], "localemodelhassublocales (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.localeModelHasSublocales"]], "localemodelpartitionsiterationonsublocales (in module localemodelhelpapu)": [[51, "LocaleModelHelpAPU.localeModelPartitionsIterationOnSublocales"]], "chpl_dodirectexecuteon() (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.chpl_doDirectExecuteOn"]], "chpl_executeon() (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.chpl_executeOn"]], "chpl_executeonfast() (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.chpl_executeOnFast"]], "chpl_executeonnb() (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.chpl_executeOnNB"]], "localemodelhassublocales (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.localeModelHasSublocales"]], "localemodelpartitionsiterationonsublocales (in module localemodelhelpflat)": [[52, "LocaleModelHelpFlat.localeModelPartitionsIterationOnSublocales"]], "chpl_dodirectexecuteon() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_doDirectExecuteOn"]], "chpl_executeon() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_executeOn"]], "chpl_executeonfast() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_executeOnFast"]], "chpl_executeonnb() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_executeOnNB"]], "chpl_getsubloc() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_getSubloc"]], "chpl_task_setsubloc() (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.chpl_task_setSubloc"]], "debuggpulocale (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.debugGPULocale"]], "localemodelhassublocales (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.localeModelHasSublocales"]], "localemodelpartitionsiterationonsublocales (in module localemodelhelpgpu)": [[53, "LocaleModelHelpGPU.localeModelPartitionsIterationOnSublocales"]], "chpl_here_aligned_alloc() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_aligned_alloc"]], "chpl_here_alloc() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_alloc"]], "chpl_here_calloc() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_calloc"]], "chpl_here_free() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_free"]], "chpl_here_good_alloc_size() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_good_alloc_size"]], "chpl_here_realloc() (in module localemodelhelpmem)": [[54, "LocaleModelHelpMem.chpl_here_realloc"]], "chpl__initcopy() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl__initCopy"]], "chpl_buildlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_buildLocaleID"]], "chpl_comm_execute_on() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_execute_on"]], "chpl_comm_execute_on_fast() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_execute_on_fast"]], "chpl_comm_execute_on_nb() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_execute_on_nb"]], "chpl_comm_on_bundle_p (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_on_bundle_p"]], "chpl_comm_on_bundle_t (record in localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_on_bundle_t"]], "chpl_comm_on_bundle_task_bundle() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_on_bundle_task_bundle"]], "chpl_comm_taskcallftable() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_comm_taskCallFTable"]], "chpl_ftable_call() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_ftable_call"]], "chpl_localeid_t (record in localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_localeID_t"]], "chpl_nodefromlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_nodeFromLocaleID"]], "chpl_rt_buildlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_rt_buildLocaleID"]], "chpl_rt_nodefromlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_rt_nodeFromLocaleID"]], "chpl_rt_sublocfromlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_rt_sublocFromLocaleID"]], "chpl_sublocfromlocaleid() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_sublocFromLocaleID"]], "chpl_taskaddbegin() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_taskAddBegin"]], "chpl_taskaddcostmt() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_taskAddCoStmt"]], "chpl_task_addtask() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_task_addTask"]], "chpl_task_bundle_p (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_task_bundle_p"]], "chpl_task_bundle_t (record in localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_task_bundle_t"]], "chpl_task_yield() (in module localemodelhelpruntime)": [[55, "LocaleModelHelpRuntime.chpl_task_yield"]], "accum() (localemodelhelpsetup.chpl_root_locale_accum method)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.accum"]], "chpl_nodeid() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.chpl_nodeID"]], "chpl_root_locale_accum (record in localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum"]], "debuglocalemodel (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.debugLocaleModel"]], "helpsetuplocaleapu() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupLocaleAPU"]], "helpsetuplocaleflat() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupLocaleFlat"]], "helpsetuplocalegpu() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupLocaleGPU"]], "helpsetuplocalenuma() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupLocaleNUMA"]], "helpsetuprootlocaleapu() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupRootLocaleAPU"]], "helpsetuprootlocaleflat() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupRootLocaleFlat"]], "helpsetuprootlocalegpu() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupRootLocaleGPU"]], "helpsetuprootlocalenuma() (in module localemodelhelpsetup)": [[56, "LocaleModelHelpSetup.helpSetupRootLocaleNUMA"]], "init() (localemodelhelpsetup.chpl_root_locale_accum method)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.init"]], "init=() (localemodelhelpsetup.chpl_root_locale_accum method)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.init="]], "maxtaskpar (localemodelhelpsetup.chpl_root_locale_accum attribute)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.maxTaskPar"]], "npuslogacc (localemodelhelpsetup.chpl_root_locale_accum attribute)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.nPUsLogAcc"]], "npuslogall (localemodelhelpsetup.chpl_root_locale_accum attribute)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.nPUsLogAll"]], "npusphysacc (localemodelhelpsetup.chpl_root_locale_accum attribute)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.nPUsPhysAcc"]], "npusphysall (localemodelhelpsetup.chpl_root_locale_accum attribute)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.nPUsPhysAll"]], "setrootlocalevalues() (localemodelhelpsetup.chpl_root_locale_accum method)": [[56, "LocaleModelHelpSetup.chpl_root_locale_accum.setRootLocaleValues"]], "localespace (in module localesarray)": [[57, "LocalesArray.LocaleSpace"]], "locales (in module localesarray)": [[57, "LocalesArray.Locales"]], "!=() (memconsistency.memory_order method)": [[58, "MemConsistency.memory_order.!="]], "=() (memconsistency.memory_order method)": [[58, "MemConsistency.memory_order.="]], "==() (memconsistency.memory_order method)": [[58, "MemConsistency.memory_order.=="]], "_defaultof() (in module memconsistency)": [[58, "MemConsistency._defaultOf"]], "c_memory_order() (in module memconsistency)": [[58, "MemConsistency.c_memory_order"]], "chpl_rmem_consist_acquire() (in module memconsistency)": [[58, "MemConsistency.chpl_rmem_consist_acquire"]], "chpl_rmem_consist_fence() (in module memconsistency)": [[58, "MemConsistency.chpl_rmem_consist_fence"]], "chpl_rmem_consist_maybe_acquire() (in module memconsistency)": [[58, "MemConsistency.chpl_rmem_consist_maybe_acquire"]], "chpl_rmem_consist_maybe_release() (in module memconsistency)": [[58, "MemConsistency.chpl_rmem_consist_maybe_release"]], "chpl_rmem_consist_release() (in module memconsistency)": [[58, "MemConsistency.chpl_rmem_consist_release"]], "memoryorder (enum in memconsistency)": [[58, "MemConsistency.memoryOrder"]], "memory_order (in module memconsistency)": [[58, "MemConsistency.memory_order"]], "memory_order_acq_rel (in module memconsistency)": [[58, "MemConsistency.memory_order_acq_rel"]], "memory_order_acquire (in module memconsistency)": [[58, "MemConsistency.memory_order_acquire"]], "memory_order_consume (in module memconsistency)": [[58, "MemConsistency.memory_order_consume"]], "memory_order_relaxed (in module memconsistency)": [[58, "MemConsistency.memory_order_relaxed"]], "memory_order_release (in module memconsistency)": [[58, "MemConsistency.memory_order_release"]], "memory_order_seq_cst (in module memconsistency)": [[58, "MemConsistency.memory_order_seq_cst"]], "readableorder() (in module memconsistency)": [[58, "MemConsistency.readableOrder"]], "serialize() (memconsistency.memory_order method)": [[58, "MemConsistency.memory_order.serialize"]], "cmemmax (in module memtracking)": [[59, "MemTracking.cMemMax"]], "cmemthreshold (in module memtracking)": [[59, "MemTracking.cMemThreshold"]], "chpl_memtracking_returnconfigvals() (in module memtracking)": [[59, "MemTracking.chpl_memTracking_returnConfigVals"]], "memleaks (in module memtracking)": [[59, "MemTracking.memLeaks"]], "memleaksbydesc (in module memtracking)": [[59, "MemTracking.memLeaksByDesc"]], "memleaksbytype (in module memtracking)": [[59, "MemTracking.memLeaksByType"]], "memleakslog (in module memtracking)": [[59, "MemTracking.memLeaksLog"]], "memlog (in module memtracking)": [[59, "MemTracking.memLog"]], "memmax (in module memtracking)": [[59, "MemTracking.memMax"]], "memstats (in module memtracking)": [[59, "MemTracking.memStats"]], "memthreshold (in module memtracking)": [[59, "MemTracking.memThreshold"]], "memtrack (in module memtracking)": [[59, "MemTracking.memTrack"]], "ratomicbool (record in networkatomics)": [[61, "NetworkAtomics.RAtomicBool"]], "ratomict (record in networkatomics)": [[61, "NetworkAtomics.RAtomicT"]], "_v (networkatomics.ratomicbool attribute)": [[61, "NetworkAtomics.RAtomicBool._v"]], "_v (networkatomics.ratomict attribute)": [[61, "NetworkAtomics.RAtomicT._v"]], "valtype (networkatomics.ratomict attribute)": [[61, "NetworkAtomics.RAtomicT.valType"]], "valtype() (networkatomics.ratomicbool method)": [[61, "NetworkAtomics.RAtomicBool.valType"]], ":() (in module ownedobject)": [[62, "OwnedObject.:"]], "<=>() (in module ownedobject)": [[62, "OwnedObject.<=>"]], "=() (in module ownedobject)": [[62, "OwnedObject.="]], "_owned (record in ownedobject)": [[62, "OwnedObject._owned"]], "_readwritehelper() (ownedobject._owned method)": [[62, "OwnedObject._owned._readWriteHelper"]], "adopt() (ownedobject._owned method)": [[62, "OwnedObject._owned.adopt"]], "borrow() (ownedobject._owned method)": [[62, "OwnedObject._owned.borrow"]], "chpl__autocopy() (in module ownedobject)": [[62, "OwnedObject.chpl__autoCopy"]], "chpl__autodestroy() (in module ownedobject)": [[62, "OwnedObject.chpl__autoDestroy"]], "chpl__initcopy() (in module ownedobject)": [[62, "OwnedObject.chpl__initCopy"]], "chpl_p (ownedobject._owned attribute)": [[62, "OwnedObject._owned.chpl_p"]], "chpl_t (ownedobject._owned attribute)": [[62, "OwnedObject._owned.chpl_t"]], "deinit() (ownedobject._owned method)": [[62, "OwnedObject._owned.deinit"]], "deserialize() (ownedobject._owned method)": [[62, "OwnedObject._owned.deserialize"]], "init() (ownedobject._owned method)": [[62, "OwnedObject._owned.init"]], "init=() (ownedobject._owned method)": [[62, "OwnedObject._owned.init="]], "release() (ownedobject._owned method)": [[62, "OwnedObject._owned.release"]], "serialize() (ownedobject._owned method)": [[62, "OwnedObject._owned.serialize"]], "initprint() (in module printmoduleinitorder)": [[63, "PrintModuleInitOrder.initPrint"]], "moduleinitlevel (in module printmoduleinitorder)": [[63, "PrintModuleInitOrder.moduleInitLevel"]], "printmoduleinit() (in module printmoduleinitorder)": [[63, "PrintModuleInitOrder.printModuleInit"]], "printmoduleinitorder (in module printmoduleinitorder)": [[63, "PrintModuleInitOrder.printModuleInitOrder"]], ":() (in module sharedobject)": [[64, "SharedObject.:"]], "<=>() (in module sharedobject)": [[64, "SharedObject.<=>"]], "=() (in module sharedobject)": [[64, "SharedObject.="]], "referencecount (class in sharedobject)": [[64, "SharedObject.ReferenceCount"]], "_readwritehelper() (sharedobject._shared method)": [[64, "SharedObject._shared._readWriteHelper"]], "_shared (record in sharedobject)": [[64, "SharedObject._shared"]], "adopt() (sharedobject._shared method)": [[64, "SharedObject._shared.adopt"]], "borrow() (sharedobject._shared method)": [[64, "SharedObject._shared.borrow"]], "chpl__autodestroy() (in module sharedobject)": [[64, "SharedObject.chpl__autoDestroy"]], "chpl_p (sharedobject._shared attribute)": [[64, "SharedObject._shared.chpl_p"]], "chpl_pn (sharedobject._shared attribute)": [[64, "SharedObject._shared.chpl_pn"]], "chpl_t (sharedobject._shared attribute)": [[64, "SharedObject._shared.chpl_t"]], "deinit() (sharedobject._shared method)": [[64, "SharedObject._shared.deinit"]], "deserialize() (sharedobject._shared method)": [[64, "SharedObject._shared.deserialize"]], "doclear() (sharedobject._shared method)": [[64, "SharedObject._shared.doClear"]], "downgrade() (sharedobject._shared method)": [[64, "SharedObject._shared.downgrade"]], "incrementweak() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.incrementWeak"]], "init() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.init"]], "init() (sharedobject._shared method)": [[64, "SharedObject._shared.init"]], "init=() (sharedobject._shared method)": [[64, "SharedObject._shared.init="]], "releasestrong() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.releaseStrong"]], "releasetotal() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.releaseTotal"]], "releaseweak() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.releaseWeak"]], "retain() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.retain"]], "serialize() (sharedobject._shared method)": [[64, "SharedObject._shared.serialize"]], "strongcount (sharedobject.referencecount attribute)": [[64, "SharedObject.ReferenceCount.strongCount"]], "totalcount (sharedobject.referencecount attribute)": [[64, "SharedObject.ReferenceCount.totalCount"]], "tryretainweak() (sharedobject.referencecount method)": [[64, "SharedObject.ReferenceCount.tryRetainWeak"]], "!() (string.byteindex method)": [[65, "String.byteIndex.!"]], "!() (string.codepointindex method)": [[65, "String.codepointIndex.!"]], "!=() (string.byteindex method)": [[65, "String.byteIndex.!="]], "!=() (string.codepointindex method)": [[65, "String.codepointIndex.!="]], "!=() (string.string method)": [[65, "String.string.!="]], "*() (in module string)": [[65, "String.*"]], "+() (string.byteindex method)": [[65, "String.byteIndex.+"]], "+() (string.codepointindex method)": [[65, "String.codepointIndex.+"]], "+() (string.string method)": [[65, "String.string.+"]], "+() (in module string)": [[65, "String.+"]], "+=() (string.string method)": [[65, "String.string.+="]], "-() (string.byteindex method)": [[65, "String.byteIndex.-"]], "-() (string.codepointindex method)": [[65, "String.codepointIndex.-"]], ":() (string.byteindex method)": [[65, "String.byteIndex.:"]], ":() (string.codepointindex method)": [[65, "String.codepointIndex.:"]], ":() (in module string)": [[65, "String.:"]], "<() (string.byteindex method)": [[65, "String.byteIndex.<"]], "<() (string.codepointindex method)": [[65, "String.codepointIndex.<"]], "<() (string.string method)": [[65, "String.string.<"]], "<=() (string.byteindex method)": [[65, "String.byteIndex.<="]], "<=() (string.codepointindex method)": [[65, "String.codepointIndex.<="]], "<=() (string.string method)": [[65, "String.string.<="]], "<=>() (string.string method)": [[65, "String.string.<=>"]], "=() (string.byteindex method)": [[65, "String.byteIndex.="]], "=() (string.codepointindex method)": [[65, "String.codepointIndex.="]], "=() (in module string)": [[65, "String.="]], "==() (string.byteindex method)": [[65, "String.byteIndex.=="]], "==() (string.codepointindex method)": [[65, "String.codepointIndex.=="]], "==() (string.string method)": [[65, "String.string.=="]], ">() (string.byteindex method)": [[65, "String.byteIndex.>"]], ">() (string.codepointindex method)": [[65, "String.codepointIndex.>"]], ">() (string.string method)": [[65, "String.string.>"]], ">=() (string.byteindex method)": [[65, "String.byteIndex.>="]], ">=() (string.codepointindex method)": [[65, "String.codepointIndex.>="]], ">=() (string.string method)": [[65, "String.string.>="]], "_bindex (string.byteindex attribute)": [[65, "String.byteIndex._bindex"]], "_cond_test() (in module string)": [[65, "String._cond_test"]], "_cpindexlen() (string._string iterator)": [[65, "String._string._cpIndexLen"]], "_cpindexlenhelpnoadjustment() (string._string method)": [[65, "String._string._cpIndexLenHelpNoAdjustment"]], "_cpindex (string.codepointindex attribute)": [[65, "String.codepointIndex._cpindex"]], "_indexlen() (string._string iterator)": [[65, "String._string._indexLen"]], "_string (record in string)": [[65, "String._string"]], "_string_contains() (in module string)": [[65, "String._string_contains"]], "appendcodepointvalues() (string.string method)": [[65, "String.string.appendCodepointValues"]], "buff (string._string attribute)": [[65, "String._string.buff"]], "bufflen (string._string attribute)": [[65, "String._string.buffLen"]], "buffsize (string._string attribute)": [[65, "String._string.buffSize"]], "byte() (string.string method)": [[65, "String.string.byte"]], "byteindex (record in string)": [[65, "String.byteIndex"]], "byteindices() (string._string method)": [[65, "String._string.byteIndices"]], "c_str() (string.string method)": [[65, "String.string.c_str"]], "cachednumcodepoints (string._string attribute)": [[65, "String._string.cachedNumCodepoints"]], "capitalize() (string._string method)": [[65, "String._string.capitalize"]], "chpl__deserialize() (string._string method)": [[65, "String._string.chpl__deserialize"]], "chpl__idxtoint() (in module string)": [[65, "String.chpl__idxToInt"]], "chpl__inttoidx() (in module string)": [[65, "String.chpl__intToIdx"]], "chpl__rangestridetype() (in module string)": [[65, "String.chpl__rangeStrideType"]], "chpl__rangeunsignedtype() (in module string)": [[65, "String.chpl__rangeUnsignedType"]], "chpl__serialize() (string._string method)": [[65, "String._string.chpl__serialize"]], "chpl_build_bounded_range() (in module string)": [[65, "String.chpl_build_bounded_range"]], "chpl_build_high_bounded_range() (in module string)": [[65, "String.chpl_build_high_bounded_range"]], "chpl_build_low_bounded_range() (in module string)": [[65, "String.chpl_build_low_bounded_range"]], "chpl_bytes() (string.string iterator)": [[65, "String.string.chpl_bytes"]], "chpl_createstringwithliteral() (in module string)": [[65, "String.chpl_createStringWithLiteral"]], "codepoint() (string.string method)": [[65, "String.string.codepoint"]], "codepointindex (record in string)": [[65, "String.codepointIndex"]], "codepointtostring() (in module string)": [[65, "String.codepointToString"]], "codepoints() (string.string iterator)": [[65, "String.string.codepoints"]], "count() (string.string method)": [[65, "String.string.count"]], "createadoptingbuffer() (string.string method)": [[65, "String.string.createAdoptingBuffer"]], "createborrowingbuffer() (string.string method)": [[65, "String.string.createBorrowingBuffer"]], "createcopyingbuffer() (string.string method)": [[65, "String.string.createCopyingBuffer"]], "dedent() (string.string method)": [[65, "String.string.dedent"]], "deinit() (string._string method)": [[65, "String._string.deinit"]], "dosearchutf8() (string._string method)": [[65, "String._string.doSearchUTF8"]], "dosplitwsutf8() (string._string iterator)": [[65, "String._string.doSplitWSUTF8"]], "dosplitwsutf8help() (string._string method)": [[65, "String._string.doSplitWSUTF8Help"]], "encode() (string.string method)": [[65, "String.string.encode"]], "endswith() (string.string method)": [[65, "String.string.endsWith"]], "find() (string.string method)": [[65, "String.string.find"]], "hasescapes (string._string attribute)": [[65, "String._string.hasEscapes"]], "hash() (string.string method)": [[65, "String.string.hash"]], "indices() (string.string method)": [[65, "String.string.indices"]], "init() (string._string method)": [[65, "String._string.init"]], "init() (string.byteindex method)": [[65, "String.byteIndex.init"]], "init() (string.codepointindex method)": [[65, "String.codepointIndex.init"]], "init=() (string._string method)": [[65, "String._string.init="]], "init=() (string.byteindex method)": [[65, "String.byteIndex.init="]], "init=() (string.codepointindex method)": [[65, "String.codepointIndex.init="]], "isascii() (string._string method)": [[65, "String._string.isASCII"]], "isalnum() (string.string method)": [[65, "String.string.isAlnum"]], "isalpha() (string.string method)": [[65, "String.string.isAlpha"]], "isdigit() (string.string method)": [[65, "String.string.isDigit"]], "isempty() (string.string method)": [[65, "String.string.isEmpty"]], "islower() (string.string method)": [[65, "String.string.isLower"]], "isowned (string._string attribute)": [[65, "String._string.isOwned"]], "isprintable() (string.string method)": [[65, "String.string.isPrintable"]], "isspace() (string.string method)": [[65, "String.string.isSpace"]], "istitle() (string.string method)": [[65, "String.string.isTitle"]], "isupper() (string.string method)": [[65, "String.string.isUpper"]], "item() (string.string method)": [[65, "String.string.item"]], "items() (string.string iterator)": [[65, "String.string.items"]], "join() (string._string method)": [[65, "String._string.join"]], "join() (string.string method)": [[65, "String.string.join"]], "locale_id (string._string attribute)": [[65, "String._string.locale_id"]], "localize() (string.string method)": [[65, "String.string.localize"]], "numbytes() (string.string method)": [[65, "String.string.numBytes"]], "numcodepoints() (string.string method)": [[65, "String.string.numCodepoints"]], "replace() (string.string method)": [[65, "String.string.replace"]], "rfind() (string.string method)": [[65, "String.string.rfind"]], "serialize() (string._string method)": [[65, "String._string.serialize"]], "serialize() (string.byteindex method)": [[65, "String.byteIndex.serialize"]], "serialize() (string.codepointindex method)": [[65, "String.codepointIndex.serialize"]], "size() (string.string method)": [[65, "String.string.size"]], "split() (string.string iterator)": [[65, "String.string.split"]], "startswith() (string.string method)": [[65, "String.string.startsWith"]], "string (in module string)": [[65, "String.string"]], "strip() (string.string method)": [[65, "String.string.strip"]], "substring() (string._string method)": [[65, "String._string.substring"]], "these() (string.string iterator)": [[65, "String.string.these"]], "this() (string.string method)": [[65, "String.string.this"]], "tobyte() (string.string method)": [[65, "String.string.toByte"]], "tocodepoint() (string.string method)": [[65, "String.string.toCodepoint"]], "tolower() (string.string method)": [[65, "String.string.toLower"]], "totitle() (string.string method)": [[65, "String.string.toTitle"]], "toupper() (string.string method)": [[65, "String.string.toUpper"]], "usecachednumcodepoints (in module string)": [[65, "String.useCachedNumCodepoints"]], "wint_t (in module string)": [[65, "String.wint_t"]], "chpl_createstringwithborrowedbuffernv() (in module nvstringfactory)": [[66, "NVStringFactory.chpl_createStringWithBorrowedBufferNV"]], "chpl_createstringwithnewbuffernv() (in module nvstringfactory)": [[66, "NVStringFactory.chpl_createStringWithNewBufferNV"]], "chpl_createstringwithownedbuffernv() (in module nvstringfactory)": [[66, "NVStringFactory.chpl_createStringWithOwnedBufferNV"]], ":() (in module stringcasts)": [[67, "StringCasts.:"]], "_real_cast_helper() (in module stringcasts)": [[67, "StringCasts._real_cast_helper"]]}}) \ No newline at end of file diff --git a/docs/internal/source/_templates/page.html b/docs/internal/source/_templates/page.html new file mode 100644 index 000000000..d604afd37 --- /dev/null +++ b/docs/internal/source/_templates/page.html @@ -0,0 +1,16 @@ +{% extends "!page.html" %} +{% block footer %} +{{ super() }} +{% if theme_analytics_id %} + +{% endif %} +{% endblock %} diff --git a/docs/internal/source/conf.py b/docs/internal/source/conf.py new file mode 100644 index 000000000..62be6e088 --- /dev/null +++ b/docs/internal/source/conf.py @@ -0,0 +1,283 @@ +# -*- coding: utf-8 -*- +# +# chpldoc documentation build configuration file, created by +# sphinx-quickstart on Thu Jan 29 08:44:44 2015. +# +# This file is execfile()d with the current directory set to its +# containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os + +on_rtd = os.environ.get('READTHEDOCS', None) == 'True' + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.insert(0, os.path.abspath('.')) + +# -- General configuration ------------------------------------------------ + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.todo', + 'sphinxcontrib.chapeldomain', + 'sphinx.ext.mathjax', +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8-sig' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'chpldoc' + +author_text = os.environ.get('CHPLDOC_AUTHOR', 'AUTHOR TEXT') + +if len(author_text): + copyright = u'2015, {0}'.format(author_text) +else: + copyright = u'2015' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = os.environ.get('CHPLDOC_PROJECT_VERSION', '').split("-")[0] +# version = '0.0.1-alpha' +# The full version, including alpha/beta/rc tags. +release = os.environ.get('CHPLDOC_PROJECT_VERSION', '') + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all +# documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + +# If true, keep warnings as "system message" paragraphs in the built documents. +#keep_warnings = False + + +# -- Options for HTML output ---------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +if not on_rtd: + import sphinx_rtd_theme + html_theme = 'sphinx_rtd_theme' + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] + + html_theme_options = { + 'sticky_navigation': True, + } + + analytics_id = os.environ.get('CHPLDOC_ANALYTICS_ID') + if analytics_id: + html_theme_options['analytics_id'] = analytics_id + + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Add any extra paths that contain custom files (such as robots.txt or +# .htaccess) here, relative to this directory. These files are copied +# directly to the root of the documentation. +#html_extra_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +#html_show_sphinx = True + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +#html_show_copyright = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'chpldocdoc' + + +# -- Options for LaTeX output --------------------------------------------- + +latex_elements = { +# The paper size ('letterpaper' or 'a4paper'). +#'papersize': 'letterpaper', + +# The font size ('10pt', '11pt' or '12pt'). +#'pointsize': '10pt', + +# Additional stuff for the LaTeX preamble. +#'preamble': '', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ('index', 'chpldoc.tex', u'chpldoc Documentation', + author_text, 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +#latex_show_pagerefs = False + +# If true, show URL addresses after external links. +#latex_show_urls = False + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_domain_indices = True + + +# -- Options for manual page output --------------------------------------- + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + ('index', 'chpldoc', u'chpldoc Documentation', + [author_text], 1) +] + +# If true, show URL addresses after external links. +#man_show_urls = False + + +# -- Options for Texinfo output ------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ('index', 'chpldoc', u'chpldoc Documentation', + author_text, 'chpldoc', 'One line description of project.', + 'Miscellaneous'), +] + +# Documents to append as an appendix to all manuals. +#texinfo_appendices = [] + +# If false, no module index is generated. +#texinfo_domain_indices = True + +# How to display URL addresses: 'footnote', 'no', or 'inline'. +#texinfo_show_urls = 'footnote' + +# If true, do not generate a @detailmenu in the "Top" node's menu. +#texinfo_no_detailmenu = False diff --git a/docs/internal/source/index.rst b/docs/internal/source/index.rst new file mode 100644 index 000000000..691977093 --- /dev/null +++ b/docs/internal/source/index.rst @@ -0,0 +1,23 @@ +chpldoc documentation +===================== + +Contents: + +.. toctree:: + :hidden: + + self + +.. toctree:: + :maxdepth: 1 + :glob: + + modules/** + + +Indices and tables +================== + +* :ref:`genindex` +* :chpl:chplref:`chplmodindex` +* :ref:`search` diff --git a/docs/internal/source/modules/README.md b/docs/internal/source/modules/README.md new file mode 100644 index 000000000..0c5648c25 --- /dev/null +++ b/docs/internal/source/modules/README.md @@ -0,0 +1,5 @@ +Modules Documentation +===================== + +Leave this directory empty. `chpldoc` will deposit .rst files here and then +call make. diff --git a/docs/internal/source/modules/internal/ArrayViewRankChange.rst b/docs/internal/source/modules/internal/ArrayViewRankChange.rst new file mode 100644 index 000000000..6483b1a2e --- /dev/null +++ b/docs/internal/source/modules/internal/ArrayViewRankChange.rst @@ -0,0 +1,250 @@ +.. default-domain:: chpl + +.. module:: ArrayViewRankChange + :noindex: + +ArrayViewRankChange +=================== +**Usage** + +.. code-block:: chapel + + use ArrayViewRankChange; + + +or + +.. code-block:: chapel + + import ArrayViewRankChange; + +.. class:: ArrayViewRankChangeDist : BaseDist + + .. attribute:: var downDistPid: int + + .. attribute:: var downDistInst + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. method:: proc downDist + + .. method:: override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds) + + .. method:: proc dsiClone() + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: override proc dsiDestroyDist() + + .. method:: override proc dsiIsLayout() param + + .. method:: proc dsiEqualDMaps( that: ArrayViewRankChangeDist(?)) + +.. class:: ArrayViewRankChangeDom : BaseRectangularDom(?) + + .. attribute:: var upDomInst: unmanaged(DefaultRectangularDom(rank, idxType, strides)?) + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. attribute:: const distPid + + .. attribute:: const distInst + + .. method:: proc dist + + .. attribute:: var downDomPid: int + + .. attribute:: var downDomInst: downDomType(collapsedDim.size, idxType, strides, distInst)? + + .. method:: proc downrank param + + .. method:: proc upDom : upDomInst!.type + + .. method:: proc downDom : downDomInst!.type + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSetIndices( inds) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !localeModelHasSublocales && chpl__isDROrDRView(downDom) && __primitive("resolves", upDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !localeModelHasSublocales && !chpl__isDROrDRView(downDom) && __primitive("resolves", downDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc chpl_rankChangeConvertLoDTupleToHiD( tup) + + .. method:: proc chpl_rankChangeConvertHiDTupleToLoD( tup) + + .. method:: proc downIdxToUpIdx( downIdx) + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: override proc dsiMyDist() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc isRankChangeDomainView() param + + .. method:: proc _getActualDomain() + + .. method:: override proc dsiDestroyDom() + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiIndexOrder( i) + + .. method:: override proc dsiCreateIndexBuffer( size) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc dsiGetReprivatizeData() + + .. method:: proc dsiReprivatize( other, reprivatizeData) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: ArrayViewRankChangeArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: const dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const collapsedDim + + .. attribute:: const idx + + .. attribute:: const indexCache + + .. attribute:: param ownsArrInstance + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, const collapsedDim, const idx, param ownsArrInstance: bool) + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isRankChangeArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool where this.arr.doiCanBulkTransferRankChange() + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool where this.arr.doiCanBulkTransferRankChange() + +.. function:: proc chpl_rankChangeConvertIdx( i: integral, collapsedDim, idx) + +.. function:: proc chpl_rankChangeConvertIdx( i, collapsedDim, idx) + +.. function:: proc chpl_rankChangeConvertIdxHiDToLoD( i, collapsedDim, idx, param rank) + +.. function:: proc chpl_rankChangeConvertDownToUp( dims, param uprank, collapsedDim) + +.. function:: proc chpl_rankChangeConvertDom( dims, param uprank, collapsedDim, idx) + diff --git a/docs/internal/source/modules/internal/ArrayViewReindex.rst b/docs/internal/source/modules/internal/ArrayViewReindex.rst new file mode 100644 index 000000000..d74e57f77 --- /dev/null +++ b/docs/internal/source/modules/internal/ArrayViewReindex.rst @@ -0,0 +1,244 @@ +.. default-domain:: chpl + +.. module:: ArrayViewReindex + :noindex: + +ArrayViewReindex +================ +**Usage** + +.. code-block:: chapel + + use ArrayViewReindex; + + +or + +.. code-block:: chapel + + import ArrayViewReindex; + +.. class:: ArrayViewReindexDist : BaseDist + + .. attribute:: const downDistPid: int + + .. attribute:: const downDistInst + + .. attribute:: const updom + + .. attribute:: const downdomPid + + .. attribute:: const downdomInst + + .. method:: proc downDist + + .. method:: override proc dsiNewRectangularDom(param rank, type idxType, param strides, inds) + + .. method:: proc dsiClone() + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: override proc dsiDestroyDist() + + .. method:: override proc dsiIsLayout() param + +.. class:: ArrayViewReindexDom : BaseRectangularDom(?) + + .. attribute:: var updomInst: unmanaged(DefaultRectangularDom(rank, idxType, strides)?) + + .. attribute:: var downdomPid + + .. attribute:: var downdomInst + + .. attribute:: const distPid + + .. attribute:: const distInst + + .. attribute:: var ownsDownDomInst = false + + .. method:: proc dist + + .. method:: proc updom : updomInst!.type + + .. method:: proc downdomtype(param rank: int, type idxType, param strides: bool) type + + .. method:: proc downdom : downdomInst.type + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSetIndices( inds) + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && chpl__isDROrDRView(downdom) && __primitive("resolves", updom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && !chpl__isDROrDRView(downdom) && __primitive("resolves", downdom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc chpl_reindexConvertLoDTupleToHiD( tup) + + .. method:: proc chpl_reindexConvertHiDTupleToLoD( tup) + + .. method:: proc downIdxToUpIdx( downIdx: integral) + + .. method:: proc downIdxToUpIdx( i) + + .. method:: override proc dsiMyDist() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: override proc isReindexDomainView() param + + .. method:: proc _getActualDomain() + + .. method:: override proc dsiDestroyDom() + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiIndexOrder( i) + + .. method:: override proc dsiCreateIndexBuffer( size) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc dsiGetReprivatizeData() + + .. method:: proc dsiReprivatize( other, reprivatizeData) + +.. class:: ArrayViewReindexArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: const dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const indexCache + + .. attribute:: param ownsArrInstance + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance, param ownsArrInstance: bool) + + .. method:: proc downdom : arr.dom.type + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isReindexArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool + +.. function:: proc chpl_reindexConvertIdxDim( i, updom, downdom, dim: int) + +.. function:: proc chpl_reindexConvertIdx( i: integral, updom, downdom) + +.. function:: proc chpl_reindexConvertIdx( i, updom, downdom) + +.. function:: proc chpl_reindexConvertDom( dims, updom, downdom) + +.. function:: proc chpl_reindexConvertDomMaybeSlice( dims, updom, downdom) + diff --git a/docs/internal/source/modules/internal/ArrayViewSlice.rst b/docs/internal/source/modules/internal/ArrayViewSlice.rst new file mode 100644 index 000000000..7fdb244d2 --- /dev/null +++ b/docs/internal/source/modules/internal/ArrayViewSlice.rst @@ -0,0 +1,116 @@ +.. default-domain:: chpl + +.. module:: ArrayViewSlice + :noindex: + +ArrayViewSlice +============== +**Usage** + +.. code-block:: chapel + + use ArrayViewSlice; + + +or + +.. code-block:: chapel + + import ArrayViewSlice; + +.. data:: param chpl_debugSerializeSlice = false + +.. data:: param chpl_serializeSlices = false + +.. class:: ArrayViewSliceArr : AbsBaseArr(?) + + .. attribute:: const _DomPid + + .. attribute:: var dom + + .. attribute:: const _ArrPid + + .. attribute:: const _ArrInstance + + .. attribute:: const indexCache + + .. method:: proc init(type eltType, const _DomPid, const dom, const _ArrPid, const _ArrInstance) + + .. method:: proc chpl__rvfMe() param + + .. method:: proc chpl__serialize() where chpl__rvfMe() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc idxType type + + .. method:: proc rank param + + .. method:: override proc isSliceArrayView() param + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && !localeModelHasSublocales && __primitive("resolves", privDom.these(tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiAccess(i: idxType ...rank) ref + + .. method:: proc dsiAccess(i: idxType ...rank) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(i: idxType ...rank) const ref + + .. method:: proc dsiAccess( i) ref + + .. method:: proc dsiAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( i) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: override proc dsiSupportsPrivatization() param + + .. method:: proc dsiGetPrivatizeData() + + .. method:: proc dsiPrivatize( privatizeData) + + .. method:: proc shouldUseIndexCache() param + + .. method:: proc buildIndexCache() + + .. method:: proc privDom : dom.type + + .. method:: proc arr + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc _getActualArray() + + .. method:: proc _containsRCRE() param + + .. method:: proc _getRCREView() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: override proc doiCanBulkTransferRankChange() param + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass, srcDom) : bool + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass, destDom) : bool + diff --git a/docs/internal/source/modules/internal/Atomics.rst b/docs/internal/source/modules/internal/Atomics.rst new file mode 100644 index 000000000..f276449d2 --- /dev/null +++ b/docs/internal/source/modules/internal/Atomics.rst @@ -0,0 +1,392 @@ +.. default-domain:: chpl + +.. module:: Atomics + :noindex: + +Atomics +======= +**Usage** + +.. code-block:: chapel + + use Atomics; + + +or + +.. code-block:: chapel + + import Atomics; + + + +For example, the following code declares an atomic variable ``x`` that +stores an ``int``: + +.. code-block:: chapel + + var x: atomic int; + +Such an atomic variable that is declared without an initialization expression +will store the default value of the contained type (i.e. ``0`` or ``false``). + +Atomic variables can also be declared with an initial value: + +.. code-block:: chapel + + var y: atomic int = 1; + +Similarly, a temporary ``atomic`` value can be created by casting to atomic: + +.. code-block:: chapel + + var one: int = 1; + ... one : atomic int... // creates an `atomic int` initialized with 1 + +Assignment is supported between atomic variables as well: + +.. code-block:: chapel + + var x: atomic int = 1; + var y: atomic int = 2; + + x = y; // equivalent to x.write(y.read()) + +Chapel currently supports atomic operations for bools, all supported sizes of +signed and unsigned integers, as well as all supported sizes of reals. Note +that not all operations are supported for all atomic types. The supported types +are listed for each operation. + + *Rationale*. + + The choice of supported atomic variable types as well as the atomic + operations was strongly influenced by the C11 standard. + +Most atomic methods accept an optional argument named ``order`` of type +``memoryOrder``. The ``order`` argument is used to specify the ordering +constraints of atomic operations. The supported memoryOrder values are: + + * memoryOrder.relaxed + * memoryOrder.acquire + * memoryOrder.release + * memoryOrder.acqRel + * memoryOrder.seqCst + + +See also :ref:`Chapter-Memory_Consistency_Model` and in particular +:ref:`non_sc_atomics` for more information on the meaning of these memory +orders. + +Unless specified, the default for the memoryOrder parameter is +memoryOrder.seqCst. + + *Implementors’ note*. + + Not all architectures or implementations may support all memoryOrder + values. In these cases, the implementation should default to a more + conservative ordering than specified. + + +.. function:: proc chpl_atomic_thread_fence( order: memory_order) + +.. function:: proc atomic_fence( order: memory_order = memory_order_seq_cst) + +.. function:: proc atomicFence(param order: memoryOrder = memoryOrder.seqCst) + + An atomic fence that establishes an ordering of non-atomic and relaxed + atomic operations. + +.. function:: proc chpl__processorAtomicType(type valType) type + +.. function:: proc chpl__atomicType(type valType) type + +.. function:: proc chpl_comm_ensure_progress() : void + +.. record:: AtomicBool : writeSerializable + + .. method:: proc type valType type + + .. method:: proc valType type + + .. attribute:: var _v: externT(bool) + + .. method:: proc ref init_helper( val: bool) + + .. method:: proc init() + + .. method:: proc init=( other: AtomicBool) + + .. method:: proc init=( other: bool) + + .. method:: proc ref deinit() + + .. method:: proc const read(param order: memoryOrder = memoryOrder.seqCst) : bool + + + Returns the stored value. + + + .. method:: proc ref write( val: bool, param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `val` as the new value. + + + .. method:: proc ref exchange( val: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `val` as the new value and returns the original value. + + + .. method:: proc ref compareExchange(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored, otherwise + updates `expected` to the original value. + + + .. method:: proc ref compareExchange(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareExchangeWeak(ref expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Similar to :proc:`compareExchange`, except that this function may + return `false` even if the original value was equal to `expected`. This + may happen if the value could not be updated atomically. + + This weak version is allowed to spuriously fail, but when + compareExchange is already in a loop, it can offer better + performance on some platforms. + + + .. method:: proc ref compareExchangeWeak(ref expected: bool, desired: bool, param success: memoryOrder, param failure: memoryOrder) + + .. method:: proc ref compareAndSwap( expected: bool, desired: bool, param order: memoryOrder = memoryOrder.seqCst) : bool + + .. warning:: + + 'compareAndSwap' is unstable + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored. + + + .. method:: proc ref testAndSet(param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `true` as the new value and returns the old value. + + + .. method:: proc ref clear(param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `false` as the new value. + + + .. method:: proc const waitFor( val: bool, param order: memoryOrder = memoryOrder.seqCst) : void + + + Waits until the stored value is equal to `val`. The implementation may + yield the running task while waiting. + + + .. method:: proc const serialize( writer, ref serializer) throws + +.. function:: operator :( rhs: bool, type t: AtomicBool) + +.. record:: AtomicT : writeSerializable + + .. attribute:: type valType + + .. attribute:: var _v: externT(valType) + + .. method:: proc ref init_helper( val: valType) + + .. method:: proc init(type valType) + + .. method:: proc init=(const ref other: this.type) + + .. method:: proc init=( other: this.type.valType) + + .. method:: proc ref deinit() + + .. method:: proc const read(param order: memoryOrder = memoryOrder.seqCst) : valType + + + Returns the stored value. + + + .. method:: proc ref write( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Stores `val` as the new value. + + + .. method:: proc ref exchange( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + Stores `val` as the new value and returns the original value. + + + .. method:: proc ref compareExchange(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored, otherwise + updates `expected` to the original value. + + + .. method:: proc ref compareExchange(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareExchangeWeak(ref expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + + Similar to :proc:`compareExchange`, except that this function may + return `false` even if the original value was equal to `expected`. This + may happen if the value could not be updated atomically. + + This weak version is allowed to spuriously fail, but when + compareExchange is already in a loop, it can offer better + performance on some platforms. + + + .. method:: proc ref compareExchangeWeak(ref expected: valType, desired: valType, param success: memoryOrder, param failure: memoryOrder) : bool + + .. method:: proc ref compareAndSwap( expected: valType, desired: valType, param order: memoryOrder = memoryOrder.seqCst) : bool + + .. warning:: + + 'compareAndSwap' is unstable + + + Stores `desired` as the new value, if and only if the original value is + equal to `expected`. Returns `true` if `desired` was stored. + + + .. method:: proc ref fetchAdd( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Adds `val` to the original value and stores the result. Defined for + integer and real atomic types. + + + .. method:: proc ref add( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Adds `val` to the original value and stores the result. Defined for + integer and real atomic types. + + + .. method:: proc ref fetchSub( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Subtracts `val` from the original value and stores the result. Defined + for integer and real atomic types. + + + .. method:: proc ref sub( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Subtracts `val` from the original value and stores the result. Defined + for integer and real atomic types. + + + .. method:: proc ref fetchOr( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``|`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref or( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``|`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref fetchAnd( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``&`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref and( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``&`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref fetchXor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : valType + + + :returns: The original value. + + Applies the ``^`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc ref xor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Applies the ``^`` operator to `val` and the original value, then stores + the result. + + Only defined for integer atomic types. + + + .. method:: proc const waitFor( val: valType, param order: memoryOrder = memoryOrder.seqCst) : void + + + Waits until the stored value is equal to `val`. The implementation may + yield the running task while waiting. + + + .. method:: proc const serialize( writer, ref serializer) throws + +.. function:: operator :( rhs, type t: AtomicT) where rhs.type == t.valType + +.. method:: operator AtomicBool. = (ref a: AtomicBool, const ref b: AtomicBool) + + Equivalent to ``a.write(b.read())`` + +.. method:: operator AtomicBool. = (ref a: AtomicBool, b) + +.. method:: operator AtomicT. = (ref a: AtomicT, const ref b: AtomicT) + + Equivalent to ``a.write(b.read())`` + +.. method:: operator AtomicT. = (ref a: AtomicT, b) + +.. method:: operator AtomicT.+( a: AtomicT, b) + +.. method:: operator AtomicT.-( a: AtomicT, b) + +.. method:: operator AtomicT.*( a: AtomicT, b) + +.. method:: operator AtomicT./( a: AtomicT, b) + +.. method:: operator AtomicT.%( a: AtomicT, b) + diff --git a/docs/internal/source/modules/internal/AtomicsCommon.rst b/docs/internal/source/modules/internal/AtomicsCommon.rst new file mode 100644 index 000000000..9392bf67e --- /dev/null +++ b/docs/internal/source/modules/internal/AtomicsCommon.rst @@ -0,0 +1,54 @@ +.. default-domain:: chpl + +.. module:: AtomicsCommon + :noindex: + +AtomicsCommon +============= +**Usage** + +.. code-block:: chapel + + use AtomicsCommon; + + +or + +.. code-block:: chapel + + import AtomicsCommon; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: atomic_refcnt + + .. attribute:: var _cnt: chpl__processorAtomicType(int) + + .. method:: proc init() + + .. method:: proc init=( other: atomic_refcnt) + + .. method:: proc inc( cnt = 1) + + .. method:: proc dec() : int(64) + + .. method:: proc read() : int(64) + diff --git a/docs/internal/source/modules/internal/ByteBufferHelpers.rst b/docs/internal/source/modules/internal/ByteBufferHelpers.rst new file mode 100644 index 000000000..d3a84fe36 --- /dev/null +++ b/docs/internal/source/modules/internal/ByteBufferHelpers.rst @@ -0,0 +1,78 @@ +.. default-domain:: chpl + +.. module:: ByteBufferHelpers + :noindex: + +ByteBufferHelpers +================= +**Usage** + +.. code-block:: chapel + + use ByteBufferHelpers; + + +or + +.. code-block:: chapel + + import ByteBufferHelpers; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. type:: type byteType = uint(8) + +.. type:: type bufferType = c_ptr(byteType) + +.. type:: type locIdType = chpl_nodeID.type + +.. data:: config param chpl_stringGrowthFactor = 1.5 + +.. function:: proc chpl_string_comm_get( dest: bufferType, src_loc_id: int(64), src_addr: bufferType, len: integral) + +.. function:: proc bufferAlloc( requestedSize) : (bufferType, int) + +.. function:: proc bufferRealloc( buf: bufferType, requestedSize: int) + +.. function:: proc bufferEnsureSize( buf: bufferType, currentSize: int, requestedSize: int) + +.. function:: proc bufferCopyRemote( src_loc_id: int(64), src_addr: bufferType, len: int) : bufferType + +.. function:: proc bufferCopyLocal( src_addr: bufferType, len: int) + +.. function:: proc bufferFree( buf: bufferType) + +.. function:: proc bufferCopy( buf: bufferType, off: int, len: int, loc: locIdType) + +.. function:: proc bufferMemcpy( dst: bufferType, src_loc: int(64), src: bufferType, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferMemcpyLocal( dst: bufferType, src: bufferType, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferMemmoveLocal( dst: bufferType, src, len: int, dst_off: int = 0, src_off: int = 0) + +.. function:: proc bufferGetByte( buf: bufferType, off: int, loc: locIdType) + +.. function:: proc bufferEquals( buf1: bufferType, off1: int, loc1: locIdType, buf2: bufferType, off2: int, loc2: locIdType, len: int) + +.. function:: proc bufferEqualsLocal( buf1: bufferType, off1: int, buf2: bufferType, off2: int, len: int) + +.. function:: proc _strcmp( buf1: bufferType, len1: int, loc1: locIdType, buf2: bufferType, len2: int, loc2: locIdType) + diff --git a/docs/internal/source/modules/internal/Bytes.rst b/docs/internal/source/modules/internal/Bytes.rst new file mode 100644 index 000000000..e82b22821 --- /dev/null +++ b/docs/internal/source/modules/internal/Bytes.rst @@ -0,0 +1,883 @@ +.. default-domain:: chpl + +.. module:: Bytes + :noindex: + +Bytes +===== +**Usage** + +.. code-block:: chapel + + use Bytes; + + +or + +.. code-block:: chapel + + import Bytes; + + +.. type:: bytes + +Supports the following methods: + +.. method:: proc type bytes.createBorrowingBuffer( x: bytes) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the internal buffer of + another :type:`bytes`. If the buffer is freed before the :type:`bytes` + returned from this function, accessing it is undefined behavior. + + :arg x: The :type:`bytes` to borrow the buffer from + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createBorrowingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createBorrowingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptr(?t), length = strLen(x)) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + `c_ptr`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: `c_ptr` to borrow as a buffer + :type x: `c_ptr(int(8))` or `c_ptr(uint(8))` + + :arg length: Length of `x`, excluding the optional terminating null byte. + Defaults to the number of bytes in `x` before the terminating + null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + :class:`~CTypes.c_ptrConst`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: `c_ptrConst` to borrow as a buffer + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x`, excluding the optional terminating null byte. + Defaults to the number of bytes in `x` before the terminating + null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. function:: proc chpl_createBytesWithLiteral( buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int) + +.. method:: proc type bytes.createBorrowingBuffer( x: c_ptr(?t), length: int, size: int) : bytes + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`bytes` which borrows the memory allocated for a + `c_ptr`. If the buffer is freed before the :type:`bytes` returned + from this function, accessing it is undefined behavior. + + :arg x: Buffer to borrow + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the buffer `x`, excluding the optional terminating + null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptr(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a `c_ptr`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The `c_ptr` to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createAdoptingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a :class:`~CTypes.c_ptrConst`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The `c_ptrConst` to take ownership of + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x`'s buffer, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createAdoptingBuffer( x: c_ptr(?t), length: int, size: int) : bytes + + + Creates a new :type:`bytes` which takes ownership of the memory + allocated for a `c_ptr`. The buffer will be freed when the + :type:`bytes` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the buffer `x`, excluding the optional terminating + null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createCopyingBuffer( x: c_ptrConst(?t), length = strLen(x)) : bytes + + + Creates a new :type:`bytes` by creating a copy of a buffer + + :arg x: The :class:`~CTypes.c_ptrConst` to copy + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + :type length: `int` + + :returns: A new :type:`bytes` + + +.. method:: proc type bytes.createCopyingBuffer( x: chpl_c_string, length = x.size) : bytes + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'bytes.createCopyingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type bytes.createCopyingBuffer( x: c_ptr(?t), length = strLen(x), size = length + 1) : bytes + + + Creates a new :type:`bytes` by creating a copy of a buffer. + + :arg x: The buffer to copy + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of buffer `x`, excluding the optional terminating null + byte. Defaults to the number of bytes in `x` before the + terminating null byte. + + :arg size: Size of memory allocated for `x` in bytes + + :returns: A new :type:`bytes` + + +.. record:: _bytes : writeSerializable, readDeserializable + + .. attribute:: var buffLen: int = 0 + + .. attribute:: var buffSize: int = 0 + + .. attribute:: var buff: bufferType = nil + + .. attribute:: var isOwned: bool = true + + .. attribute:: var locale_id = chpl_nodeID + + .. method:: proc init() + + .. method:: proc ref deinit() + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserialize) throws + + .. method:: proc init=( b: bytes) + + .. method:: proc init=( b: string) + + .. method:: proc init=( b: c_string) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + + .. method:: proc byteIndices + + .. method:: proc param size param + + .. method:: proc param numBytes param + + .. method:: proc param this(param i: int) param: int + + .. method:: proc param item(param i: int) param: bytes + + .. method:: proc item( i: byteIndex) : bytes + + .. method:: proc this( i: byteIndex) : uint(8) + + .. method:: proc param toByte() param: uint(8) + + .. method:: proc param byte(param i: int) param: uint(8) + + .. method:: proc join(const ref x: [] bytes) : bytes + + .. method:: proc join(const ref x) where isTuple(x) + + .. method:: proc join( ir: _iteratorRecord) : bytes + +.. method:: proc bytes.size : int + + + :returns: The number of bytes in the :type:`bytes`. + + +.. method:: proc bytes.indices : range + + + :returns: The indices that can be used to index into the bytes + (i.e., the range ``0.. 0``, remove ``columns`` leading whitespace characters + from each line. Tabs are not considered whitespace when ``columns > 0``, + so only leading spaces are removed. + + :arg columns: The number of columns of indentation to remove. Infer + common leading whitespace if ``columns == 0``. + + :arg ignoreFirst: When ``true``, ignore first line when determining the + common leading whitespace, and make no changes to the + first line. + + :returns: A new :type:`bytes` with indentation removed. + + +.. method:: proc bytes.decode( policy = decodePolicy.strict) : string throws + + + Returns a UTF-8 string from the given :type:`bytes`. If the data is + malformed for UTF-8, `policy` argument determines the action. + + :arg policy: - `decodePolicy.strict` raises an error + - `decodePolicy.replace` replaces the malformed character + with UTF-8 replacement character + - `decodePolicy.drop` drops the data silently + - `decodePolicy.escape` escapes each illegal byte with + private use codepoints + + :throws: Throws a :class:`~Errors.DecodeError` if `decodePolicy.strict` is + passed to the `policy` argument and the :type:`bytes` contains non-UTF-8 + characters. + + :returns: A UTF-8 string. + + +.. method:: proc bytes.isUpper() : bool + + + Checks if all the characters in the :type:`bytes` are uppercase + (A-Z) in ASCII. Ignores uncased (not a letter) and extended ASCII + characters (decimal value larger than 127) + + :returns: * `true`--there is at least one uppercase and no lowercase characters + * `false`--otherwise + + +.. method:: proc bytes.isLower() : bool + + + Checks if all the characters in the :type:`bytes` are lowercase + (a-z) in ASCII. Ignores uncased (not a letter) and extended ASCII + characters (decimal value larger than 127) + + :returns: * `true`--there is at least one lowercase and no uppercase characters + * `false`--otherwise + + +.. method:: proc bytes.isSpace() : bool + + + Checks if all the characters in the :type:`bytes` are whitespace + (' ', '\\t', '\\n', '\\v', '\\f', '\\r') in ASCII. + + :returns: * `true` -- when all the characters are whitespace. + * `false` -- otherwise + + +.. method:: proc bytes.isAlpha() : bool + + + Checks if all the characters in the :type:`bytes` are alphabetic + (a-zA-Z) in ASCII. + + :returns: * `true` -- when the characters are alphabetic. + * `false` -- otherwise + + +.. method:: proc bytes.isDigit() : bool + + + Checks if all the characters in the :type:`bytes` are digits (0-9) + in ASCII. + + :returns: * `true` -- when the characters are digits. + * `false` -- otherwise + + +.. method:: proc bytes.isAlnum() : bool + + + Checks if all the characters in the :type:`bytes` are alphanumeric + (a-zA-Z0-9) in ASCII. + + :returns: * `true` -- when the characters are alphanumeric. + * `false` -- otherwise + + +.. method:: proc bytes.isPrintable() : bool + + + Checks if all the characters in the :type:`bytes` are printable in + ASCII. + + :returns: * `true` -- when the characters are printable. + * `false` -- otherwise + + +.. method:: proc bytes.isTitle() : bool + + + Checks if all uppercase characters are preceded by uncased characters, + and if all lowercase characters are preceded by cased characters in ASCII. + + :returns: * `true` -- when the condition described above is met. + * `false` -- otherwise + + +.. method:: proc bytes.toLower() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to lowercase. + + :returns: A new :type:`bytes` with all uppercase characters (A-Z) + replaced with their lowercase counterpart in ASCII. Other + characters remain untouched. + + +.. method:: proc bytes.toUpper() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to uppercase. + + :returns: A new :type:`bytes` with all lowercase characters (a-z) + replaced with their uppercase counterpart in ASCII. Other + characters remain untouched. + + +.. method:: proc bytes.toTitle() : bytes + + + Creates a new :type:`bytes` with all applicable characters + converted to title capitalization. + + :returns: A new :type:`bytes` with all cased characters(a-zA-Z) + following an uncased character converted to uppercase, and all + cased characters following another cased character converted to + lowercase. + + +.. function:: operator :( x: string, type t: bytes) + +.. function:: operator :( x: c_string, type t: bytes) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + +.. method:: operator bytes.+=(ref lhs: bytes, const ref rhs: bytes) : void + + + Appends the :type:`bytes` `rhs` to the :type:`bytes` `lhs`. + + +.. method:: proc ref bytes.appendByteValues(x: uint(8) ...) : void + + .. warning:: + + 'bytes.appendByteValues' is unstable and may change in the future + + + Appends the one or more byte values passed as arguments to + the :type:`bytes` `this`. + + +.. method:: proc bytes.toHexadecimal( uppercase: bool = false, type resultType = bytes) : resultType + + .. warning:: + + 'bytes.toHexadecimal' is unstable and may change in the future + + + Computes a hexadecimal representation for a ``bytes`` + and returns it as a ``bytes``. + + +.. method:: operator bytes. = (ref lhs: bytes, rhs: bytes) : void + + + Copies the :type:`bytes` `rhs` into the :type:`bytes` `lhs`. + + +.. method:: operator bytes. = (ref lhs: bytes, rhs_c: c_string) : void + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'bytes.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + + + Copies the c_string `rhs_c` into the bytes `lhs`. + + Halts if `lhs` is a remote bytes. + + +.. method:: operator bytes.+( s0: bytes, s1: bytes) : bytes + + + :returns: A new :type:`bytes` which is the result of concatenating + `s0` and `s1` + + +.. method:: operator bytes.+(param s0: bytes, param s1: bytes) param + +.. function:: operator *( s: bytes, n: integral) : bytes + + + :returns: A new :type:`bytes` which is the result of repeating `s` + `n` times. If `n` is less than or equal to 0, an empty bytes is + returned. + + The operation is commutative. + For example: + + .. code-block:: chapel + + writeln(b"Hello! "*3); + or + writeln(3*b"Hello! "); + + Results in:: + + Hello! Hello! Hello! + + +.. function:: operator *( n: integral, s: bytes) + +.. method:: operator bytes.==( a: bytes, b: bytes) : bool + +.. method:: operator bytes.!=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.<( a: bytes, b: bytes) : bool + +.. method:: operator bytes.>( a: bytes, b: bytes) : bool + +.. method:: operator bytes.<=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.>=( a: bytes, b: bytes) : bool + +.. method:: operator bytes.==(param s0: bytes, param s1: bytes) param + +.. method:: operator bytes.!=(param s0: bytes, param s1: bytes) param + +.. method:: operator bytes.<=(param a: bytes, param b: bytes) param + +.. method:: operator bytes.>=(param a: bytes, param b: bytes) param + +.. method:: operator bytes.<(param a: bytes, param b: bytes) param + +.. method:: operator bytes.>(param a: bytes, param b: bytes) param + +.. method:: proc bytes.hash() : uint + +.. method:: operator bytes.<=>(ref x: bytes, ref y: bytes) + diff --git a/docs/internal/source/modules/internal/BytesCasts.rst b/docs/internal/source/modules/internal/BytesCasts.rst new file mode 100644 index 000000000..2a37112ae --- /dev/null +++ b/docs/internal/source/modules/internal/BytesCasts.rst @@ -0,0 +1,62 @@ +.. default-domain:: chpl + +.. module:: BytesCasts + :noindex: + +BytesCasts +========== +**Usage** + +.. code-block:: chapel + + use BytesCasts; + + +or + +.. code-block:: chapel + + import BytesCasts; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: operator :( x: bool, type t: bytes) + +.. function:: operator :( x: bytes, type t: bool) throws + +.. function:: operator :( x: integral, type t: bytes) + +.. function:: operator :( x: bytes, type t: integral) throws + +.. function:: proc _real_cast_helper( x: real(64), param isImag: bool) : bytes + +.. function:: operator :( x: chpl_anyreal, type t: bytes) + +.. function:: operator :( x: chpl_anyimag, type t: bytes) + +.. function:: operator :( x: bytes, type t: chpl_anyreal) throws + +.. function:: operator :( x: bytes, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_anycomplex, type t: bytes) + +.. function:: operator :( x: bytes, type t: chpl_anycomplex) throws + diff --git a/docs/internal/source/modules/internal/BytesStringCommon.rst b/docs/internal/source/modules/internal/BytesStringCommon.rst new file mode 100644 index 000000000..52b1df965 --- /dev/null +++ b/docs/internal/source/modules/internal/BytesStringCommon.rst @@ -0,0 +1,252 @@ +.. default-domain:: chpl + +.. module:: BytesStringCommon + :noindex: + +BytesStringCommon +================= +**Usage** + +.. code-block:: chapel + + use BytesStringCommon; + + +or + +.. code-block:: chapel + + import BytesStringCommon; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: const CHPL_SHORT_STRING_SIZE: c_int + +.. record:: chpl__inPlaceBuffer + +.. function:: proc chpl__getInPlaceBufferData(const ref data: chpl__inPlaceBuffer) : bufferType + +.. function:: proc chpl__getInPlaceBufferDataForWrite(ref data: chpl__inPlaceBuffer) : bufferType + +.. record:: __serializeHelper + + .. attribute:: var buffLen: int + + .. attribute:: var buff: bufferType + + .. attribute:: var size: int + + .. attribute:: var locale_id: chpl_nodeID.type + + .. attribute:: var shortData: chpl__inPlaceBuffer + + .. attribute:: var cachedNumCodepoints: int + +.. enum:: enum decodePolicy { strict, replace, drop, escape } + + + ``decodePolicy`` specifies what happens when there is malformed characters + when decoding a :mod:`Bytes` into a UTF-8 :record:`~String.string`. + + - **strict**: default policy; raise error + - **replace**: replace with UTF-8 replacement character + - **drop**: silently drop data + - **escape**: escape invalid data by replacing each byte 0xXX with + codepoint 0xDCXX + + + .. enumconstant:: enum constant strict + + .. enumconstant:: enum constant replace + + .. enumconstant:: enum constant drop + + .. enumconstant:: enum constant escape + +.. enum:: enum encodePolicy { unescape, pass } + + + ``encodePolicy`` specifies what happens when there is escaped non-UTF8 + bytes when encoding a :record:`~String.string` into a + :mod:`Bytes`. + + - **pass**: default policy; copy directly + - **unescape**: recover the original data from the escaped data + + + .. enumconstant:: enum constant unescape + + .. enumconstant:: enum constant pass + +.. data:: config param showStringBytesInitDeprWarnings = true + +.. data:: param surrogateEscape = 0xdc: byteType + +.. function:: proc getCStr(const ref x: ?t) : c_ptrConst(c_char) + +.. function:: proc decodeByteBuffer( buff: bufferType, length: int, policy: decodePolicy) throws + + + This function is called by `bytes.decode` and string factory functions that + take a C array as the buffer. + + It iterates over the buffer, trying to decode codepoints out of it. If there + is an illegal sequence that doesn't correspond to any valid codepoint, the + behavior is determined by the `policy` argument. See the `decodePolicy` + documentation above for the meaning of different policies. + + +.. function:: proc decodeHelp( buff: c_ptr(uint(8)), buffLen: int, offset: int, allowEsc: bool) + + + This function decodeHelp is used to create a wrapper for + qio_decode_char_buf* and qio_decode_char_buf_esc and return + the value of errorCode , cp and nBytes. + + :arg buff: Buffer to decode + + :arg buffLen: Size of buffer + + :arg offset: Starting index of read buffer, + + :arg allowEsc: Choice between "qio_decode_char_buf" + and "qio_decode_char_buf_esc" that allows + escaped sequences in the string + + :returns: Tuple of decodeRet, chr and nBytes + decodeRet : error code : errorCode + chr : corresponds to codepoint + nBytes : number of bytes of corresponding UTF-8 encoding + + +.. function:: proc initWithBorrowedBuffer(ref x: ?t, other: t) + +.. function:: proc initWithBorrowedBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc initWithOwnedBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc initWithNewBuffer(ref x: ?t, other: t) + +.. function:: proc initWithNewBuffer(ref x: ?t, other: bufferType, length: int, size: int) + +.. function:: proc getView(const ref x: ?t, r: range(?), param checkMisaligned = true) throws + +.. function:: proc getSlice(const ref x: ?t, r: range(?)) throws + +.. function:: proc getIndexType(type t) type + +.. function:: proc doReplace(const ref x: ?t, needle: t, replacement: t, count: int = -1) : t + +.. function:: proc doSplitHelp(const ref localx: ?t, const ref localSep: t, const maxsplit: int = -1, const ignoreEmpty: bool = false, ref start: getIndexType(t), const splitCount: int) : t + +.. iterfunction:: iter doSplit(const ref x: ?t, sep: t, maxsplit: int = -1, ignoreEmpty: bool = false) : t + +.. function:: proc doSplitWSNoEncHelp(const ref localx: ?t, maxsplit: int = -1, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex) : t + +.. iterfunction:: iter doSplitWSNoEnc(const ref x: ?t, maxsplit: int = -1) : t + +.. function:: proc doSearchNoEnc(const ref x: ?t, needle: t, region: range(?), param count: bool, param fromLeft: bool = true) + +.. function:: proc startsEndsWith(const ref x: ?t, needles, param fromLeft: bool) : bool where isHomogeneousTuple(needles) && needles[0].type == t + +.. function:: proc doJoinIterator(const ref x: ?t, ir: _iteratorRecord) : t + +.. function:: proc doJoin(const ref x: ?t, const ref S) : t where isTuple(S) || isArray(S) + +.. function:: proc doPartition(const ref x: ?t, sep: t) : 3*(t) + +.. function:: proc doDedent(const ref x: ?t, columns = 0, ignoreFirst = true) : t + +.. function:: proc resizeBufferForAppend(ref lhs: ?t, n: int) : int + +.. function:: proc doAppend(ref lhs: ?t, const ref rhs: t) + +.. function:: proc doAppendSomeBytes(ref lhs: ?t, n: int, byteCArr: c_array(uint(8), ?), nCodepoints: int) + + Take n bytes from byteCArr and append it to the string/bytes + in lhs + +.. function:: proc resizeBuffer(ref lhs: ?t, buffLen: int) + +.. function:: proc reinitWithNewBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0) + +.. function:: proc reinitWithOwnedBuffer(ref lhs: ?t, buff: bufferType, buffLen: int, buffSize: int, numCodepoints: int = 0) + +.. function:: proc doAssign(ref lhs: ?t, rhs: t) + +.. function:: proc doMultiply(const ref x: ?t, n: integral) + +.. function:: proc doConcat( s0: ?t, s1: t) : t + +.. function:: proc doStripNoEnc(const ref x: ?t, chars: t, leading: bool, trailing: bool) : t + +.. function:: proc doEq( a: ?t1, b: ?t2) + +.. function:: proc doLessThan( a: ?t1, b: ?t2) + +.. function:: proc doGreaterThan( a: ?t1, b: ?t2) + +.. function:: proc doLessThanOrEq( a: ?t1, b: ?t2) + +.. function:: proc doGreaterThanOrEq( a: ?t1, b: ?t2) + +.. function:: proc getHash( x: ?t) + +.. function:: proc countNumCodepoints( x: string) + +.. function:: proc countNumCodepoints( buff: bufferType, buffLen: int) + +.. function:: proc isInitialByte( b: uint(8)) : bool + + + Returns true if the argument is a valid initial byte of a UTF-8 + encoded multibyte character. + + +.. function:: proc _findStartOfNextCodepointFromByte( x: string, i: byteIndex) + + + Returns the byte index of the beginning of the first codepoint starting from + (and including) i + + +.. function:: proc _cleanupForNumericCast(ref x: ?t) + +.. function:: proc byte_isAscii( c: byteType) : bool + +.. function:: proc byte_isWhitespace( c: byteType) : bool + +.. function:: proc byte_isPrintable( c: byteType) : bool + +.. function:: proc byte_isAlpha( c: byteType) : bool + +.. function:: proc byte_isUpper( c: byteType) : bool + +.. function:: proc byte_isLower( c: byteType) : bool + +.. function:: proc byte_isDigit( c: byteType) : bool + +.. function:: proc byte_isAlnum( c: byteType) : bool + +.. function:: proc byte_toUpper( c: byteType) : byteType + +.. function:: proc byte_toLower( c: byteType) : byteType + diff --git a/docs/internal/source/modules/internal/CString.rst b/docs/internal/source/modules/internal/CString.rst new file mode 100644 index 000000000..d56539312 --- /dev/null +++ b/docs/internal/source/modules/internal/CString.rst @@ -0,0 +1,90 @@ +.. default-domain:: chpl + +.. module:: CString + :noindex: + +CString +======= +**Usage** + +.. code-block:: chapel + + use CString; + + +or + +.. code-block:: chapel + + import CString; + +.. function:: proc chpl__initCopy( x: chpl_c_string, definedConst: bool) : chpl_c_string + +.. function:: proc chpl__autoCopy( x: chpl_c_string, definedConst: bool) : chpl_c_string + +.. method:: operator chpl_c_string.==( s0: chpl_c_string, s1: chpl_c_string) + +.. method:: operator chpl_c_string.!=( s0: chpl_c_string, s1: chpl_c_string) + +.. method:: operator chpl_c_string.<=( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.>=( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.<( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string.>( a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: chpl_c_string) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: _nilType) + +.. method:: operator chpl_c_string. = (ref a: chpl_c_string, b: string) + +.. function:: operator :( x: _nilType, type t: chpl_c_string) + +.. function:: operator :( x: chpl_c_string, type t: c_ptr(void)) + +.. function:: operator :( x: c_ptr(void), type t: chpl_c_string) + +.. function:: operator :( x: chpl_c_string, type t: c_ptr(?eltType)) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: chpl_c_string, type t: c_ptrConst(?eltType)) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: c_ptr(?eltType), type t: chpl_c_string) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: c_ptrConst(?eltType), type t: chpl_c_string) where eltType == c_char || eltType == int(8) || eltType == uint(8) + +.. function:: operator :( x: chpl_c_string, type t: bool) throws + +.. function:: operator :( x: chpl_c_string, type t: integral) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anyreal) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_c_string, type t: chpl_anycomplex) throws + +.. method:: proc chpl_c_string.size + +.. method:: proc chpl_c_string.substring( i: int) + +.. method:: proc chpl_c_string.substring( r: range(?)) + +.. method:: proc param chpl_c_string.size param + +.. function:: proc _string_contains(param a: chpl_c_string, param b: chpl_c_string) param + +.. method:: proc chpl_c_string.indexOf( substring: chpl_c_string) : int + + Returns the index of the first occurrence of a substring within a string, + or 0 if the substring is not in the string. + + +.. function:: proc string_index_of( haystack: chpl_c_string, needle: chpl_c_string) : int + +.. function:: proc chpl_free_c_string(ref cs: chpl_c_string) + +.. method:: proc chpl_c_string.serialize( writer, ref serializer) throws + +.. method:: proc chpl_c_string.deserialize( reader, ref deserializer) throws + diff --git a/docs/internal/source/modules/internal/ChapelArray.rst b/docs/internal/source/modules/internal/ChapelArray.rst new file mode 100644 index 000000000..7a92ed845 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelArray.rst @@ -0,0 +1,900 @@ +.. default-domain:: chpl + +.. module:: ChapelArray + :noindex: + +ChapelArray +=========== +**Usage** + +.. code-block:: chapel + + use ChapelArray; + + +or + +.. code-block:: chapel + + import ChapelArray; + +.. data:: var numPrivateObjects: chpl__processorAtomicType(int) + +.. data:: param nullPid = -1 + +.. data:: config param debugBulkTransfer = false + +.. data:: config param useBulkTransfer = true + +.. data:: config param useBulkTransferStride = true + +.. data:: config param useBulkPtrTransfer = useBulkTransfer + +.. data:: config param disableConstDomainOpt = false + +.. data:: config param debugOptimizedSwap = false + +.. data:: config param PODValAccess = true + +.. data:: config param useBulkTransferDist = false + +.. data:: config param arrayAsVecGrowthFactor = 1.5 + +.. data:: config param debugArrayAsVec = false + +.. data:: config param logDistArrEltAccess = false + +.. data:: config param logAllArrEltAccess = false + +.. function:: proc _isPrivatized( value) param + +.. function:: proc _newPrivatizedClass( value) : int + +.. function:: proc _freePrivatizedClass( pid: int, original: RootClass) : void + +.. function:: proc _reprivatize( value) : void + +.. function:: proc _makeIndexTuple(param rank, t: _tuple, param concept: string, param expand: bool = false) + +.. function:: proc _makeIndexTuple(param rank, val: integral, param concept: string, param expand: bool = false) + +.. function:: proc _makeIndexTuple(param rank, val, param concept: string, param expand: bool = false) + +.. function:: proc _newArray( value) + +.. function:: proc _getDistribution( value) + +.. function:: proc chpl__buildArrayRuntimeType( dom: domain, type eltType) type + +.. function:: proc chpl__convertRuntimeTypeToValue( dom: domain, type eltType, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertValueToRuntimeType( arr: []) type + +.. data:: config param CHPL_WARN_DOMAIN_LITERAL = "unset" + + + * Support for array literal expressions. + * + * Array literals are detected during parsing and converted + * to a call expr. Array values pass through the various + * compilation phases as regular parameters. + * + * NOTE: It would be nice to define a second, less specific, function + * to handle the case of multiple types, however this is not + * possible atm due to using var args with a query type. + +.. data:: config param arrayLiteralLowBound = defaultLowBound + +.. data:: config param capturedIteratorLowBound = defaultLowBound + +.. function:: proc chpl__buildArrayExpr(in elems ...?k) + +.. function:: proc chpl_computeUnifiedType( x: _tuple) type + +.. function:: proc chpl_computeUnifiedTypeHelp( x: _tuple, j: int = 0) + +.. function:: proc chpl__buildAssociativeArrayExpr(const elems ...?k) + +.. function:: proc chpl_incRefCountsForDomainsInArrayEltTypes( arr: unmanaged(BaseArr), type eltType) + +.. function:: proc chpl_decRefCountsForDomainsInArrayEltTypes( arr: unmanaged(BaseArr), type eltType) + +.. function:: proc chpl__distributed( d, dom: domain, definedConst: bool) + +.. function:: proc chpl__distributed( d, expr, definedConst: bool) + +.. function:: proc chpl__isArrayView( arr) param + +.. function:: proc chpl__getActualArray( arr) + +.. function:: proc chpl__isDROrDRView( arg) param + +.. function:: proc chpl__isDomainView( dom) param + +.. function:: proc chpl__getActualDomain( dom) + +.. function:: proc chpl__distributed( d, type domainType, definedConst: bool) type + +.. function:: proc chpl__distributionFromDomainRuntimeType(type rtt) + +.. function:: proc chpl__eltTypeFromArrayRuntimeType(type rtt) type + +.. function:: proc chpl__instanceTypeFromArrayRuntimeType(type rtt) type + +.. function:: proc chpl__instanceTypeFromDomainRuntimeType(type rtt) type + +.. function:: proc chpl__buildIndexType(param rank: int, type idxType) type where rank == 1 + +.. function:: proc chpl__buildIndexType(param rank: int, type idxType) type where rank > 1 + +.. function:: proc chpl__buildIndexType(param rank: int) type + +.. function:: proc chpl__buildIndexType( d: domain) type + +.. function:: proc chpl__checkRetEltTypeMatch( a: [], type b) + +.. function:: proc chpl__checkRetEltTypeMatch( a: _iteratorRecord, type b) + +.. function:: proc chpl__checkOutEltTypeMatch( a: [], type b) + +.. function:: proc chpl__checkOutEltTypeMatch( a: _iteratorRecord, type b) + +.. record:: dmap + + .. warning:: + + the type 'dmap' is unstable, instead please use distribution factory functions when available + +.. function:: proc chpl__buildDistType(type t) type where isSubtype(_to_borrowed(t), BaseDist) + +.. function:: proc chpl__buildDistType(type t: record) type + +.. function:: proc chpl__buildDistType(type t) + +.. function:: proc chpl__buildDistValue( x: unmanaged) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistValue(in x: owned) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistValue(const ref x: record) const ref + +.. function:: proc chpl__buildDistValue( x) + +.. function:: proc chpl__buildDistDMapValue(const ref x: record) const ref + +.. function:: proc chpl__buildDistDMapValue( x: unmanaged) where isSubtype(x.borrow().type, BaseDist) + +.. function:: proc chpl__buildDistDMapValue(in x: owned) where isSubtype(x.borrow().type, BaseDist) + +.. function:: operator ==( d1: _distribution(?), d2: _distribution(?)) + +.. function:: operator ==( d1: _distribution(?), d2: record) param + +.. function:: operator ==( d1: record, d2: _distribution(?)) param + +.. function:: operator !=( d1: _distribution(?), d2: _distribution(?)) + +.. function:: operator !=( d1: _distribution(?), d2: record) param + +.. function:: operator !=( d1: record, d2: _distribution(?)) param + +.. function:: proc chpl_defaultComparator() + +.. function:: proc shouldReturnRvalueByValue(type t) param + +.. record:: _array : writeSerializable, readDeserializable + + The array type + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc chpl__serialize() where _instance.chpl__rvfMe() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc chpl__promotionType() type + + .. method:: proc _value + + .. method:: proc deinit() + + .. method:: proc eltType type + + The type of elements contained in the array + + .. method:: proc idxType type + + The type used to represent the array's indices. For a + multidimensional array, this is the per-dimension type used. + + .. method:: proc fullIdxType type + + The type used to represent the array's indices. For a + 1-dimensional or associative array, this will be the same as + :proc:`idxType` above. For a multidimensional array, it will be + :proc:`rank` * :proc:`idxType`. + + .. method:: proc _dom + + .. method:: proc rank param + + The number of dimensions in the array + + .. method:: proc strides param + + The strides value of the underlying domain + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc indices where !this.isSparse() && !this.isAssociative() + + + Return a dense rectangular array's indices as a default domain. + + + .. itermethod:: iter indices where this.isSparse() || this.isAssociative() + + + Yield an irregular array's indices. + + + .. method:: proc checkAccess( indices, value) + + .. method:: proc checkSlice( d: domain, value) + + .. method:: proc checkSlice(ranges ...rank, value) where chpl__isTupleOfRanges(ranges) + + .. method:: proc ref this(const i: rank*_value.dom.idxType) ref + + .. method:: proc const this(const i: rank*_value.dom.idxType) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const this(const i: rank*_value.dom.idxType) const ref + + .. method:: proc ref this(const i: _value.dom.idxType ...rank) ref + + .. method:: proc const this(const i: _value.dom.idxType ...rank) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const this(const i: _value.dom.idxType ...rank) const ref + + .. method:: proc ref localAccess( i: rank*_value.dom.idxType) ref + + .. method:: proc const localAccess( i: rank*_value.dom.idxType) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const localAccess( i: rank*_value.dom.idxType) const ref + + .. method:: proc ref localAccess(i: _value.dom.idxType ...rank) ref + + .. method:: proc const localAccess(i: _value.dom.idxType ...rank) where shouldReturnRvalueByValue(_value.eltType) + + .. method:: proc const localAccess(i: _value.dom.idxType ...rank) const ref + + .. method:: proc this( d: domain) + + .. method:: proc this(ranges ...rank) where chpl__isTupleOfRanges(ranges) + + .. method:: proc this(args ...rank) where _validRankChangeArgs(args, _value.dom.idxType) + + .. method:: proc dims() + + + Return a tuple of ranges describing the bounds of a rectangular domain. + For a sparse domain, return the bounds of the parent domain. + + + .. method:: proc dim( d: int) + + + Return a range representing the boundary of this + domain in a particular dimension. + + + .. method:: proc dim(param d: int) + + .. method:: proc checkRankChange( args) + + .. method:: proc localSlice(r ...rank) where chpl__isDROrDRView(this) && chpl__isTupleOfRanges(r) + + .. method:: proc localSlice( d: domain) where chpl__isDROrDRView(this) + + .. method:: proc tryCopy() throws + + .. warning:: + + tryCopy() is subject to change in the future. + + .. method:: proc chpl__localSliceDefaultArithArrHelp( d: domain) + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && !chpl__isDROrDRView(this) + + .. method:: proc localSlice( d: domain) + + .. itermethod:: iter these() ref + + Yield the array elements + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, param fast: bool = false) ref where tag == iterKind.follower + + .. method:: proc size : int + + Return the number of elements in the array + + .. method:: proc sizeAs(type t: integral) : t + + Return the number of elements in the array as the specified type. + + .. method:: proc chpl_checkArrArgDoms( formalDom: domain, param runtimeChecks: bool) + + .. method:: proc reindex( newDomain: domain) where this.domain.isRectangular() && newDomain.isRectangular() + + + Return an array view over a new domain. The new domain must be + of the same rank and size as the original array's domain. + + For example: + + .. code-block:: chapel + + var A: [1..10] int; + const D = {6..15}; + ref reA = A.reindex(D); + reA[6] = 1; // updates A[1] + + + .. method:: proc reindex(newDims ...) where this.domain.isRectangular() + + + Return an array view over a new domain defined implicitly + by one or more `newDims`, which must be ranges. The new domain must be + of the same rank and size as the original array's domain. + + For example: + + .. code-block:: chapel + + var A: [3..4, 5..6] int; + ref reA = A.reindex(13..14, 15..16); + reA[13,15] = 1; // updates A[3,5] + + + .. method:: proc reindex( d: domain) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc IRV where !this.isSparse() + + Return the Implicitly Represented Value for sparse arrays + + .. method:: proc IRV ref where this.isSparse() + + .. method:: proc displayRepresentation() + + .. method:: proc targetLocales() const ref + + + Return an array of locales over which this array has been distributed. + + + .. method:: proc hasSingleLocalSubdomain() param + + .. warning:: + + 'hasSingleLocalSubdomain' on arrays is unstable and may change in the future + + Return true if the local subdomain can be represented as a single + domain. Otherwise return false. + + .. method:: proc localSubdomain( loc: locale = here) + + + Return the subdomain that is local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. itermethod:: iter localSubdomains( loc: locale = here) + + .. warning:: + + 'localSubdomains' on arrays is unstable and may change in the future + + + Yield the subdomains that are local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. method:: proc chpl__isDense1DArray() param + + .. method:: proc isEmpty() : bool + + Return true if the array has no elements + + .. method:: proc last + + Return the last element in the array. The array must be a + rectangular 1-D array. + + + .. method:: proc first + + Return the first element in the array. The array must be a + rectangular 1-D array. + + + .. method:: proc find( val: eltType, ref idx: fullIdxType) : bool + + + + Search an array for ``val``, returning whether or not it is + found. If the value is found, the index storing it is returned + in ``idx``. If multiple copies of it are found, the + lexicographically earliest index will be returned. If it is not + found, the resulting value of ``idx`` is unspecified. + + + + .. method:: proc find( val: eltType) : fullIdxType + + + + Search a rectangular array with integral indices for ``val``, + returning the index where it is found. If the array contains + multiple copies of ``val``, the lexicographically earliest index + will be returned. If ``val`` is not found, + ``domain.lowBound-1`` will be returned instead. + + Note that for arrays with ``idxType=int(?w)`` (signed ``int`` + indices), if the low bound in a dimension is ``min(int(w))``, + the result will not be well-defined. + + + + .. method:: proc count( val: this.eltType) : int + + Return the number of times ``val`` occurs in the array. + + .. method:: proc shape : rank*int where this.isRectangular() || this.isSparse() + + Return a tuple of integers describing the size of each dimension. + For a sparse array, returns the shape of the parent domain. + + .. method:: proc shape where this.isAssociative() + + Associative domains assumed to be 1-D. + + .. method:: proc shape + + Unsupported case + + .. method:: proc _scan( op) where Reflection.canResolveMethod(_value, "doiScan", op, this.domain) + + .. method:: proc iteratorYieldsLocalElements() param + + .. method:: proc chpl_isNonDistributedArray() param + + .. method:: proc isRectangular() param + + Return true if the argument ``a`` is an array with a rectangular + domain. Otherwise return false. + + .. method:: proc isIrregular() param + + Return true if ``a`` is an array with an irregular domain; e.g. not + rectangular. Otherwise return false. + + .. method:: proc isAssociative() param + + Return true if ``a`` is an array with an associative domain. Otherwise + return false. + + .. method:: proc isSparse() param + + Return true if ``a`` is an array with a sparse domain. Otherwise + return false. + +.. function:: proc _do_destroy_arr( _unowned: bool, _instance, deinitElts = true) + +.. function:: proc _do_destroy_array( array: _array, deinitElts = true) + +.. function:: proc _deinitElementsIsParallel(type eltType, size: integral) + +.. function:: proc _deinitElements(ref array: _array) + +.. method:: proc _array.equals( that: _array) : bool + + .. warning:: + + the 'Array.equals()' method is unstable + + Return true if all this array is the same size and shape + as argument ``that`` and all elements of this array are + equal to the corresponding element in ``that``. Otherwise + return false. + +.. function:: operator :(param arg, type t: _array) + +.. function:: operator :( x: [], type t: string) + + .. warning:: + + casting arrays to string is deprecated; please use 'try! "%?".format()' from IO.FormattedIO instead + +.. function:: operator :(in x: [] ?et, type t: et) where t == et + +.. function:: operator #( arr: [], counts: integral) + +.. function:: operator #( arr: [], counts: _tuple) + +.. function:: operator #( arr: [], counts) + +.. function:: proc isCollapsedDimension( r: range(?e, ?b, ?s, ?a)) param + +.. function:: proc isCollapsedDimension( r) param + +.. function:: proc chpl__countRanges( arg) param + +.. function:: proc chpl__countRanges( arg, args ...) param + +.. function:: proc _validRankChangeArgs( args, type idxType) param + +.. function:: operator = (ref a: _distribution, b: _distribution) + + .. warning:: + + assignment between distributions is currently unstable due to lack of testing + +.. function:: proc chpl__serializeAssignment( a, b) param + +.. function:: proc chpl__compatibleForBulkTransfer( a, b, param kind: _tElt) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer(type t) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: string) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: bytes) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: sync) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: single) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: domain) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: []) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: _distribution) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: locale) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: chpl_anycomplex) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x: borrowed(RootClass)) param + +.. function:: proc chpl__supportedDataTypeForBulkTransfer( x) param + +.. function:: proc checkArrayShapesUponAssignment( a, b, forSwap = false) + +.. function:: operator = (ref a: [], b: []) + +.. function:: operator = (ref a: chpl__protoSlice, b: chpl__protoSlice) + +.. enum:: enum _tElt { move, initCopy, assign } + + .. enumconstant:: enum constant move + + .. enumconstant:: enum constant initCopy + + .. enumconstant:: enum constant assign + +.. function:: proc chpl__uncheckedArrayTransfer(ref a, b, param kind) + +.. function:: proc chpl__initAfterBulkTransfer(ref a, param kind) + +.. function:: proc chpl__compatibleForWidePtrBulkTransfer( a, b, param kind = _tElt.assign) param + +.. function:: proc chpl__bulkTransferPtrArray(ref a: [], b: []) + +.. function:: proc chpl__bulkTransferArray(ref a: [?AD], b: [?BD]) + +.. function:: proc chpl__bulkTransferArray(ref a: chpl__protoSlice, b: chpl__protoSlice) + +.. function:: proc chpl__bulkTransferArray(ref a: [], AD, const ref b: [], BD) + +.. function:: proc chpl__bulkTransferArray( destClass, destView, srcClass, srcView) + +.. function:: proc chpl__transferArray(ref a, const ref b, param kind = _tElt.assign, param alwaysSerialize = false) + +.. function:: proc chpl__transferArray(ref a: [], param b, param kind = _tElt.assign) + +.. function:: operator = (ref a: [], b: domain) + +.. function:: operator = (ref a: [], b: range(?)) + +.. function:: operator = (ref a: [], b: _iteratorRecord) + +.. function:: operator = (ref a: [], b: ?t) where !(isTupleType(t) || isCoercible(t, _desync(a.eltType))) + +.. function:: operator = (ref a: [], b: _tuple) where a.isRectangular() + +.. function:: proc _desync(type t: _syncvar) type + +.. function:: proc _desync(type t: _singlevar) type + +.. function:: proc _desync(type t) type where isAtomicType(t) + +.. function:: proc _desync(type t: _array) type + + Or, we could explicitly overload for each atomic type since there + are a fixed number + proc _desync(type t: atomic int) type { + return int; + } + +.. function:: proc _desync(type t) type + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + Direct assignment to 'sync' variables is deprecated; apply a 'write??()' method to modify one + +.. function:: operator = (ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + Direct assignment to 'single' variables is deprecated; apply '.writeEF()' to modify one + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator +=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator -=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator *=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator /=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator %=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator **=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator &=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator |=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator ^=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator >>=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) where isSyncType(a.eltType) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator <<=(ref a: [], b: _desync(a.eltType)) where isSingleType(a.eltType) + + .. warning:: + + 'op=' assignments to 'single' variables are deprecated; add explicit '.read??'/'.writeEF' methods to modify one + +.. function:: operator <=>(ref x: [?xD], ref y: [?yD]) + +.. function:: proc reshape( A: [], D: domain) + + Return a copy of the array ``A`` containing the same values but + in the shape of the domain ``D``. The number of indices in the + domain must equal the number of elements in the array. The + elements of ``A`` are copied into the new array using the + default iteration orders over ``D`` and ``A``. + +.. function:: proc reshape( A: _iteratorRecord, D: domain) + +.. iterfunction:: iter linearize( Xs) + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isRectangular() + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isAssociative() + +.. function:: proc chpl__initCopy(const ref rhs: domain, definedConst: bool) where rhs.isSparse() + +.. function:: proc chpl__autoCopy(const ref x: domain, definedConst: bool) + +.. data:: param localizeConstDomains = false + +.. data:: param debugLocalizedConstDomains = false + +.. function:: proc chpl__initCopy(const ref rhs: [], definedConst: bool) + +.. function:: proc chpl__autoCopy( x: [], definedConst: bool) + +.. function:: proc chpl__coerceHelp(type dstType: domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _array, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _array, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: desyncEltType(dstType), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs: desyncEltType(dstType), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _array, rhs, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _array, in rhs, definedConst: bool) + +.. function:: proc chpl__unref( x: []) where chpl__isArrayView(x._value) + +.. function:: proc chpl__unref( ir: _iteratorRecord) + +.. function:: proc chpl__unref( x: []) + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) where chpl_iteratorHasDomainShape(ir) + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) where chpl_iteratorHasRangeShape(ir) && !chpl_iteratorFromForExpr(ir) + +.. function:: proc chpl__initCopy_shapeHelp( shape: domain, ir: _iteratorRecord) + +.. function:: proc chpl__throwErrorUnchecked(in e: owned(Error)) throws + +.. function:: proc chpl__initCopy( ir: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl_arrayToPtrErrorHelper(const ref arr: []) + +.. function:: proc chpl_arrayToPtr(ref arr: [], param castToVoidStar: bool = false) + +.. function:: proc chpl_arrayToPtrConst(const ref arr: [], param castToVoidStar: bool = false) + diff --git a/docs/internal/source/modules/internal/ChapelArrayViewElision.rst b/docs/internal/source/modules/internal/ChapelArrayViewElision.rst new file mode 100644 index 000000000..5d528960c --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelArrayViewElision.rst @@ -0,0 +1,106 @@ +.. default-domain:: chpl + +.. module:: ChapelArrayViewElision + :noindex: + +ChapelArrayViewElision +====================== +**Usage** + +.. code-block:: chapel + + use ChapelArrayViewElision; + + +or + +.. code-block:: chapel + + import ChapelArrayViewElision; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl__createProtoSlice(ref Arr, slicingExprs ...) where chpl__createProtoSliceArgCheck(Arr, slicingExprs) + +.. function:: proc chpl__createConstProtoSlice(const ref Arr, slicingExprs ...) where chpl__createProtoSliceArgCheck(Arr, slicingExprs) + +.. function:: proc chpl__createProtoSlice( x, slicingExprs ...) + +.. function:: proc chpl__createConstProtoSlice( x, slicingExprs ...) + +.. function:: proc chpl__ave_exprCanBeProtoSlice( base, idxExprs ...) param: bool + +.. function:: proc chpl__ave_protoSlicesSupportAssignment( a: chpl__protoSlice, b: chpl__protoSlice) param: bool + +.. record:: chpl__protoSlice + + .. attribute:: param rank + + .. attribute:: param isConst + + .. attribute:: var ptrToArr + + .. attribute:: type slicingExprType + + .. attribute:: var ranges + + .. attribute:: param isRankChange = false + + .. method:: proc init() + + .. method:: proc init(param isConst, ptrToArr, slicingExprs) + + .. method:: proc init=( other: chpl__protoSlice) + + .. method:: proc domOrRange where rank == 1 + + .. method:: proc domOrRange where rank > 1 + + .. method:: proc dims() + + .. method:: proc rank param + + .. method:: proc eltType type + + .. method:: proc _value + + .. method:: proc sizeAs(type t) where rank == 1 + + .. method:: proc sizeAs(type t) + + .. method:: proc isRectangular() param + + .. itermethod:: iter these() ref where !isConst + + .. itermethod:: iter these() const ref where isConst + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower && !isConst + + .. itermethod:: iter these(param tag: iterKind, followThis) const ref where tag == iterKind.follower && isConst + +.. function:: operator ==(const ref lhs: chpl__protoSlice(?), const ref rhs: chpl__protoSlice(?)) + +.. function:: operator :(ref a: chpl__protoSlice, type b: chpl__protoSlice) + +.. function:: proc isProtoSlice( a) param + diff --git a/docs/internal/source/modules/internal/ChapelAutoAggregation.rst b/docs/internal/source/modules/internal/ChapelAutoAggregation.rst new file mode 100644 index 000000000..efec4e227 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelAutoAggregation.rst @@ -0,0 +1,56 @@ +.. default-domain:: chpl + +.. module:: ChapelAutoAggregation + :noindex: + +ChapelAutoAggregation +===================== +**Usage** + +.. code-block:: chapel + + use ChapelAutoAggregation; + + +or + +.. code-block:: chapel + + import ChapelAutoAggregation; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl_srcAggregatorFor( arr: []) + +.. function:: proc chpl_srcAggregatorFor( dom) where isDomain(dom) + +.. function:: proc chpl_srcAggregatorFor( arr) + +.. function:: proc chpl_dstAggregatorFor( arr: []) + +.. function:: proc chpl_dstAggregatorFor( dom) where isDomain(dom) + +.. function:: proc chpl_dstAggregatorFor( arr) + +.. function:: proc chpl__arrayIteratorYieldsLocalElements( x) param + +.. function:: proc chpl__arrayIteratorYieldsLocalElements(type a) param + diff --git a/docs/internal/source/modules/internal/ChapelAutoLocalAccess.rst b/docs/internal/source/modules/internal/ChapelAutoLocalAccess.rst new file mode 100644 index 000000000..4eb835a41 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelAutoLocalAccess.rst @@ -0,0 +1,64 @@ +.. default-domain:: chpl + +.. module:: ChapelAutoLocalAccess + :noindex: + +ChapelAutoLocalAccess +===================== +**Usage** + +.. code-block:: chapel + + use ChapelAutoLocalAccess; + + +or + +.. code-block:: chapel + + import ChapelAutoLocalAccess; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: proc chpl__staticAutoLocalCheck( accessBase: [], loopDomain: domain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck( accessBase, loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck( accessBase, type loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__staticAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false) param + +.. function:: proc chpl__dynamicAutoLocalCheck( accessBase, loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck(type accessBase, type loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck( accessBase, type loopDomain, param hasOffsets = false) + +.. function:: proc chpl__dynamicAutoLocalCheck(type accessBase, loopDomain, param hasOffsets = false) + +.. function:: proc chpl__ala_offsetCheck( accessBase: [], offsets: integral ...) + +.. function:: proc chpl__ala_offsetCheck( accessBase, offsets ...) + +.. function:: proc chpl__isArrayViewWithDifferentDist( arr: []) param + diff --git a/docs/internal/source/modules/internal/ChapelBase.rst b/docs/internal/source/modules/internal/ChapelBase.rst new file mode 100644 index 000000000..ab8053363 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelBase.rst @@ -0,0 +1,2119 @@ +.. default-domain:: chpl + +.. module:: ChapelBase + :noindex: + +ChapelBase +========== +**Usage** + +.. code-block:: chapel + + use ChapelBase; + + +or + +.. code-block:: chapel + + import ChapelBase; + +**Submodules** + +.. toctree:: + :maxdepth: 1 + :glob: + + ChapelBase/* + +.. type:: type c_string = chpl_c_string + + .. warning:: + + the type 'c_string' is deprecated; please 'use CTypes' and replace 'c_string' with 'c_ptrConst(c_char)' + +.. type:: type c_fn_ptr = chpl_c_fn_ptr + + .. warning:: + + 'c_fn_ptr' is unstable, and may be replaced by first-class procedure functionality + +.. method:: operator c_fn_ptr. = (ref a: c_fn_ptr, b: c_fn_ptr) + + .. warning:: + + = is unstable + +.. method:: proc c_fn_ptr.this() + + .. warning:: + + this is unstable + +.. method:: proc c_fn_ptr.this(args ...) + + .. warning:: + + this is unstable + +.. data:: var rootLocaleInitialized: bool = false + +.. data:: config param enablePostfixBangChecks = false + +.. function:: proc chpl_config_has_value( name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : bool + +.. function:: proc chpl_config_get_value( name: c_ptrConst(c_char), module_name: c_ptrConst(c_char)) : c_ptrConst(c_char) + +.. data:: config param defaultLowBound = 0 + +.. data:: config param chpl_stringMinAllocSize = 0 + +.. data:: config param warnMaximalRange = false + +.. data:: var chpl_unstableInternalSymbolForTesting: int + + .. warning:: + + chpl_unstableInternalSymbolForTesting is unstable + +.. data:: config param assocParSafeDefault = false + + Compile with ``-sassocParSafeDefault=true`` to use ``parSafe=true`` + by default for associative domains and arrays. + Compiling with an explicit ``-sassocParSafeDefault[=false]`` will + turn off the par safe warning, just like ``-snoParSafeWarning`` + +.. data:: config param noParSafeWarning = false + + Compile with ``-snoParSafeWarning`` to suppress the warning + about a missing explicit ``parSafe`` parameter and + about the default parSafe mode for associative domains + and arrays changing from ``true`` to ``false``. + +.. class:: _object + +.. class:: object + + .. warning:: + + the 'object' abstract root class has been deprecated; please use 'RootClass' instead + +.. enum:: enum iterKind { leader, follower, standalone } + + .. enumconstant:: enum constant leader + + .. enumconstant:: enum constant follower + + .. enumconstant:: enum constant standalone + +.. data:: config param fcfsUsePointerImplementation = false + +.. function:: operator = (ref a: bool, b: bool) + +.. function:: operator = (ref a: int(8), b: int(8)) + +.. function:: operator = (ref a: int(16), b: int(16)) + +.. function:: operator = (ref a: int(32), b: int(32)) + +.. function:: operator = (ref a: int(64), b: int(64)) + +.. function:: operator = (ref a: uint(8), b: uint(8)) + +.. function:: operator = (ref a: uint(16), b: uint(16)) + +.. function:: operator = (ref a: uint(32), b: uint(32)) + +.. function:: operator = (ref a: uint(64), b: uint(64)) + +.. function:: operator = (ref a: real(32), b: real(32)) + +.. function:: operator = (ref a: real(64), b: real(64)) + +.. function:: operator = (ref a: imag(32), b: imag(32)) + +.. function:: operator = (ref a: imag(64), b: imag(64)) + +.. function:: operator = (ref a: complex(64), b: complex(64)) + +.. function:: operator = (ref a: complex(128), b: complex(128)) + +.. function:: operator = (ref a: opaque, b: opaque) + +.. function:: operator = (ref a: enum, b: enum) where a.type == b.type + +.. function:: operator = (ref a: borrowed(class), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: borrowed(class?), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: unmanaged(class), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: unmanaged(class?), b: a.type) where isSubtype(b.type, a.type) + +.. function:: operator = (ref a: nothing, b: ?t) where t != nothing + +.. function:: operator = (ref a: ?t, b: nothing) where t != nothing + +.. function:: operator = (ref a: nothing, b: nothing) param + +.. function:: operator ==( a: _nilType, b: _nilType) param + +.. function:: operator ==( a: bool, b: bool) + +.. function:: operator ==( a: int(8), b: int(8)) + +.. function:: operator ==( a: int(16), b: int(16)) + +.. function:: operator ==( a: int(32), b: int(32)) + +.. function:: operator ==( a: int(64), b: int(64)) + +.. function:: operator ==( a: uint(8), b: uint(8)) + +.. function:: operator ==( a: uint(16), b: uint(16)) + +.. function:: operator ==( a: uint(32), b: uint(32)) + +.. function:: operator ==( a: uint(64), b: uint(64)) + +.. function:: operator ==( a: real(32), b: real(32)) + +.. function:: operator ==( a: real(64), b: real(64)) + +.. function:: operator ==( a: imag(32), b: imag(32)) + +.. function:: operator ==( a: imag(64), b: imag(64)) + +.. function:: operator ==( a: complex(64), b: complex(64)) + +.. function:: operator ==( a: complex(128), b: complex(128)) + +.. function:: operator ==( a: borrowed(RootClass?), b: borrowed(RootClass?)) + +.. function:: operator ==( a: borrowed(RootClass?), b: _nilType) + +.. function:: operator ==( a: _nilType, b: borrowed(RootClass?)) + +.. function:: operator ==( a: enum, b: enum) where a.type == b.type + +.. function:: operator ==( a: enum, b: enum) where a.type != b.type + +.. function:: operator !=( a: _nilType, b: _nilType) param + +.. function:: operator !=( a: bool, b: bool) + +.. function:: operator !=( a: int(8), b: int(8)) + +.. function:: operator !=( a: int(16), b: int(16)) + +.. function:: operator !=( a: int(32), b: int(32)) + +.. function:: operator !=( a: int(64), b: int(64)) + +.. function:: operator !=( a: uint(8), b: uint(8)) + +.. function:: operator !=( a: uint(16), b: uint(16)) + +.. function:: operator !=( a: uint(32), b: uint(32)) + +.. function:: operator !=( a: uint(64), b: uint(64)) + +.. function:: operator !=( a: real(32), b: real(32)) + +.. function:: operator !=( a: real(64), b: real(64)) + +.. function:: operator !=( a: imag(32), b: imag(32)) + +.. function:: operator !=( a: imag(64), b: imag(64)) + +.. function:: operator !=( a: complex(64), b: complex(64)) + +.. function:: operator !=( a: complex(128), b: complex(128)) + +.. function:: operator !=( a: borrowed(RootClass?), b: borrowed(RootClass?)) + +.. function:: operator !=( a: borrowed(RootClass?), b: _nilType) + +.. function:: operator !=( a: _nilType, b: borrowed(RootClass?)) + +.. function:: operator !=( a: enum, b: enum) where a.type == b.type + +.. function:: operator !=( a: enum, b: enum) where a.type != b.type + +.. function:: operator ==(param a: bool, param b: bool) param + +.. function:: operator ==(param a: int(8), param b: int(8)) param + +.. function:: operator ==(param a: int(16), param b: int(16)) param + +.. function:: operator ==(param a: int(32), param b: int(32)) param + +.. function:: operator ==(param a: int(64), param b: int(64)) param + +.. function:: operator ==(param a: uint(8), param b: uint(8)) param + +.. function:: operator ==(param a: uint(16), param b: uint(16)) param + +.. function:: operator ==(param a: uint(32), param b: uint(32)) param + +.. function:: operator ==(param a: uint(64), param b: uint(64)) param + +.. function:: operator ==(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator ==(param a: real(32), param b: real(32)) param + +.. function:: operator ==(param a: real(64), param b: real(64)) param + +.. function:: operator ==(param a: imag(32), param b: imag(32)) param + +.. function:: operator ==(param a: imag(64), param b: imag(64)) param + +.. function:: operator ==(param a: complex(64), param b: complex(64)) param + +.. function:: operator ==(param a: complex(128), param b: complex(128)) param + +.. function:: operator ==( a: nothing, b: nothing) param + +.. function:: operator !=(param a: bool, param b: bool) param + +.. function:: operator !=(param a: int(8), param b: int(8)) param + +.. function:: operator !=(param a: int(16), param b: int(16)) param + +.. function:: operator !=(param a: int(32), param b: int(32)) param + +.. function:: operator !=(param a: int(64), param b: int(64)) param + +.. function:: operator !=(param a: uint(8), param b: uint(8)) param + +.. function:: operator !=(param a: uint(16), param b: uint(16)) param + +.. function:: operator !=(param a: uint(32), param b: uint(32)) param + +.. function:: operator !=(param a: uint(64), param b: uint(64)) param + +.. function:: operator !=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator !=(param a: real(32), param b: real(32)) param + +.. function:: operator !=(param a: real(64), param b: real(64)) param + +.. function:: operator !=(param a: imag(32), param b: imag(32)) param + +.. function:: operator !=(param a: imag(64), param b: imag(64)) param + +.. function:: operator !=(param a: complex(64), param b: complex(64)) param + +.. function:: operator !=(param a: complex(128), param b: complex(128)) param + +.. function:: operator !=( a: nothing, b: nothing) param + +.. function:: operator <=( a: int(8), b: int(8)) + +.. function:: operator <=( a: int(16), b: int(16)) + +.. function:: operator <=( a: int(32), b: int(32)) + +.. function:: operator <=( a: int(64), b: int(64)) + +.. function:: operator <=( a: uint(8), b: uint(8)) + +.. function:: operator <=( a: uint(16), b: uint(16)) + +.. function:: operator <=( a: uint(32), b: uint(32)) + +.. function:: operator <=( a: uint(64), b: uint(64)) + +.. function:: operator <=( a: real(32), b: real(32)) + +.. function:: operator <=( a: real(64), b: real(64)) + +.. function:: operator <=( a: enum, b: enum) where a.type == b.type + +.. function:: operator <=( a: enum, b: enum) where a.type != b.type + +.. function:: operator >=( a: int(8), b: int(8)) + +.. function:: operator >=( a: int(16), b: int(16)) + +.. function:: operator >=( a: int(32), b: int(32)) + +.. function:: operator >=( a: int(64), b: int(64)) + +.. function:: operator >=( a: uint(8), b: uint(8)) + +.. function:: operator >=( a: uint(16), b: uint(16)) + +.. function:: operator >=( a: uint(32), b: uint(32)) + +.. function:: operator >=( a: uint(64), b: uint(64)) + +.. function:: operator >=( a: real(32), b: real(32)) + +.. function:: operator >=( a: real(64), b: real(64)) + +.. function:: operator >=( a: enum, b: enum) where a.type == b.type + +.. function:: operator >=( a: enum, b: enum) where a.type != b.type + +.. function:: operator <( a: integral, b: integral) + +.. function:: operator <( a: integral, param b: integral) param where isUint(a) && __primitive("<=", b, 0) + +.. function:: operator <(param a: integral, b: integral) param where isUint(b) && __primitive("<", a, 0) + +.. function:: operator <(param a: integral, param b: integral) param + +.. function:: operator <( a: bool, b: bool) + +.. function:: operator <( a: bool, b: integral) + +.. function:: operator <( a: integral, b: bool) + +.. function:: operator <(param a: bool, param b: bool) param + +.. function:: operator <( a: real(32), b: real(32)) + +.. function:: operator <( a: real(64), b: real(64)) + +.. function:: operator <( a: enum, b: enum) where a.type == b.type + +.. function:: operator <( a: enum, b: enum) where a.type != b.type + +.. function:: operator >( a: int(8), b: int(8)) + +.. function:: operator >( a: int(16), b: int(16)) + +.. function:: operator >( a: int(32), b: int(32)) + +.. function:: operator >( a: int(64), b: int(64)) + +.. function:: operator >( a: uint(8), b: uint(8)) + +.. function:: operator >( a: uint(16), b: uint(16)) + +.. function:: operator >( a: uint(32), b: uint(32)) + +.. function:: operator >( a: uint(64), b: uint(64)) + +.. function:: operator >( a: real(32), b: real(32)) + +.. function:: operator >( a: real(64), b: real(64)) + +.. function:: operator >( a: enum, b: enum) where a.type == b.type + +.. function:: operator >( a: enum, b: enum) where a.type != b.type + +.. function:: operator <=(param a: int(8), param b: int(8)) param + +.. function:: operator <=(param a: int(16), param b: int(16)) param + +.. function:: operator <=(param a: int(32), param b: int(32)) param + +.. function:: operator <=(param a: int(64), param b: int(64)) param + +.. function:: operator <=(param a: uint(8), param b: uint(8)) param + +.. function:: operator <=(param a: uint(16), param b: uint(16)) param + +.. function:: operator <=(param a: uint(32), param b: uint(32)) param + +.. function:: operator <=(param a: uint(64), param b: uint(64)) param + +.. function:: operator <=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator <=(param a: real(32), param b: real(32)) param + +.. function:: operator <=(param a: real(64), param b: real(64)) param + +.. function:: operator >=(param a: int(8), param b: int(8)) param + +.. function:: operator >=(param a: int(16), param b: int(16)) param + +.. function:: operator >=(param a: int(32), param b: int(32)) param + +.. function:: operator >=(param a: int(64), param b: int(64)) param + +.. function:: operator >=(param a: uint(8), param b: uint(8)) param + +.. function:: operator >=(param a: uint(16), param b: uint(16)) param + +.. function:: operator >=(param a: uint(32), param b: uint(32)) param + +.. function:: operator >=(param a: uint(64), param b: uint(64)) param + +.. function:: operator >=(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator >=(param a: real(32), param b: real(32)) param + +.. function:: operator >=(param a: real(64), param b: real(64)) param + +.. function:: operator <(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator <(param a: real(32), param b: real(32)) param + +.. function:: operator <(param a: real(64), param b: real(64)) param + +.. function:: operator >(param a: int(8), param b: int(8)) param + +.. function:: operator >(param a: int(16), param b: int(16)) param + +.. function:: operator >(param a: int(32), param b: int(32)) param + +.. function:: operator >(param a: int(64), param b: int(64)) param + +.. function:: operator >(param a: uint(8), param b: uint(8)) param + +.. function:: operator >(param a: uint(16), param b: uint(16)) param + +.. function:: operator >(param a: uint(32), param b: uint(32)) param + +.. function:: operator >(param a: uint(64), param b: uint(64)) param + +.. function:: operator >(param a: enum, param b: enum) param where a.type == b.type + +.. function:: operator >(param a: real(32), param b: real(32)) param + +.. function:: operator >(param a: real(64), param b: real(64)) param + +.. function:: operator +( a: int(?w)) + +.. function:: operator +( a: uint(?w)) + +.. function:: operator +( a: real(?w)) + +.. function:: operator +( a: imag(?w)) + +.. function:: operator +( a: complex(?w)) + +.. function:: operator -( a: int(?w)) + +.. function:: operator -( a: uint(?w)) + +.. function:: operator -( a: real(?w)) + +.. function:: operator -( a: imag(?w)) + +.. function:: operator -( a: complex(?w)) + +.. function:: operator +(param a: int(?w)) param + +.. function:: operator +(param a: uint(?w)) param + +.. function:: operator +(param a: real(?w)) param + +.. function:: operator +(param a: imag(?w)) param + +.. function:: operator +(param a: complex(?w)) param + +.. function:: operator -(param a: int(?w)) param + +.. function:: operator -(param a: uint(?w)) param + +.. function:: operator -(param a: real(?w)) param + +.. function:: operator -(param a: imag(?w)) param + +.. function:: operator -(param a: complex(?w)) param + +.. function:: operator +( a: int(8), b: int(8)) + +.. function:: operator +( a: int(16), b: int(16)) + +.. function:: operator +( a: int(32), b: int(32)) + +.. function:: operator +( a: int(64), b: int(64)) + +.. function:: operator +( a: uint(8), b: uint(8)) + +.. function:: operator +( a: uint(16), b: uint(16)) + +.. function:: operator +( a: uint(32), b: uint(32)) + +.. function:: operator +( a: uint(64), b: uint(64)) + +.. function:: operator +( a: real(32), b: real(32)) + +.. function:: operator +( a: real(64), b: real(64)) + +.. function:: operator +( a: imag(32), b: imag(32)) + +.. function:: operator +( a: imag(64), b: imag(64)) + +.. function:: operator +( a: complex(64), b: complex(64)) + +.. function:: operator +( a: complex(128), b: complex(128)) + +.. function:: operator +( a: real(32), b: imag(32)) + +.. function:: operator +( a: real(64), b: imag(64)) + +.. function:: operator +( a: imag(32), b: real(32)) + +.. function:: operator +( a: imag(64), b: real(64)) + +.. function:: operator +( a: real(32), b: complex(64)) + +.. function:: operator +( a: real(64), b: complex(128)) + +.. function:: operator +( a: complex(64), b: real(32)) + +.. function:: operator +( a: complex(128), b: real(64)) + +.. function:: operator +( a: imag(32), b: complex(64)) + +.. function:: operator +( a: imag(64), b: complex(128)) + +.. function:: operator +( a: complex(64), b: imag(32)) + +.. function:: operator +( a: complex(128), b: imag(64)) + +.. function:: operator -( a: int(8), b: int(8)) + +.. function:: operator -( a: int(16), b: int(16)) + +.. function:: operator -( a: int(32), b: int(32)) + +.. function:: operator -( a: int(64), b: int(64)) + +.. function:: operator -( a: uint(8), b: uint(8)) + +.. function:: operator -( a: uint(16), b: uint(16)) + +.. function:: operator -( a: uint(32), b: uint(32)) + +.. function:: operator -( a: uint(64), b: uint(64)) + +.. function:: operator -( a: real(32), b: real(32)) + +.. function:: operator -( a: real(64), b: real(64)) + +.. function:: operator -( a: imag(32), b: imag(32)) + +.. function:: operator -( a: imag(64), b: imag(64)) + +.. function:: operator -( a: complex(64), b: complex(64)) + +.. function:: operator -( a: complex(128), b: complex(128)) + +.. function:: operator -( a: real(32), b: imag(32)) + +.. function:: operator -( a: real(64), b: imag(64)) + +.. function:: operator -( a: imag(32), b: real(32)) + +.. function:: operator -( a: imag(64), b: real(64)) + +.. function:: operator -( a: real(32), b: complex(64)) + +.. function:: operator -( a: real(64), b: complex(128)) + +.. function:: operator -( a: complex(64), b: real(32)) + +.. function:: operator -( a: complex(128), b: real(64)) + +.. function:: operator -( a: imag(32), b: complex(64)) + +.. function:: operator -( a: imag(64), b: complex(128)) + +.. function:: operator -( a: complex(64), b: imag(32)) + +.. function:: operator -( a: complex(128), b: imag(64)) + +.. function:: operator +(param a: int(8), param b: int(8)) param + +.. function:: operator +(param a: int(16), param b: int(16)) param + +.. function:: operator +(param a: int(32), param b: int(32)) param + +.. function:: operator +(param a: int(64), param b: int(64)) param + +.. function:: operator +(param a: uint(8), param b: uint(8)) param + +.. function:: operator +(param a: uint(16), param b: uint(16)) param + +.. function:: operator +(param a: uint(32), param b: uint(32)) param + +.. function:: operator +(param a: uint(64), param b: uint(64)) param + +.. function:: operator +(param a: real(32), param b: real(32)) param + +.. function:: operator +(param a: real(64), param b: real(64)) param + +.. function:: operator +(param a: imag(32), param b: imag(32)) param + +.. function:: operator +(param a: imag(64), param b: imag(64)) param + +.. function:: operator +(param a: complex(64), param b: complex(64)) param + +.. function:: operator +(param a: complex(128), param b: complex(128)) param + +.. function:: operator +(param a: real(32), param b: imag(32)) param + +.. function:: operator +(param a: real(64), param b: imag(64)) param + +.. function:: operator +(param a: imag(32), param b: real(32)) param + +.. function:: operator +(param a: imag(64), param b: real(64)) param + +.. function:: operator -(param a: int(8), param b: int(8)) param + + inline operator +(param a: real(?w), param b: complex(w*2)) param do return + __primitive("+", a, b); + +.. function:: operator -(param a: int(16), param b: int(16)) param + +.. function:: operator -(param a: int(32), param b: int(32)) param + +.. function:: operator -(param a: int(64), param b: int(64)) param + +.. function:: operator -(param a: uint(8), param b: uint(8)) param + +.. function:: operator -(param a: uint(16), param b: uint(16)) param + +.. function:: operator -(param a: uint(32), param b: uint(32)) param + +.. function:: operator -(param a: uint(64), param b: uint(64)) param + +.. function:: operator -(param a: real(32), param b: real(32)) param + +.. function:: operator -(param a: real(64), param b: real(64)) param + +.. function:: operator -(param a: imag(32), param b: imag(32)) param + +.. function:: operator -(param a: imag(64), param b: imag(64)) param + +.. function:: operator -(param a: complex(64), param b: complex(64)) param + +.. function:: operator -(param a: complex(128), param b: complex(128)) param + +.. function:: operator -(param a: real(32), param b: imag(32)) param + +.. function:: operator -(param a: real(64), param b: imag(64)) param + +.. function:: operator -(param a: imag(32), param b: real(32)) param + +.. function:: operator -(param a: imag(64), param b: real(64)) param + +.. function:: operator *( a: int(8), b: int(8)) + +.. function:: operator *( a: int(16), b: int(16)) + +.. function:: operator *( a: int(32), b: int(32)) + +.. function:: operator *( a: int(64), b: int(64)) + +.. function:: operator *( a: uint(8), b: uint(8)) + +.. function:: operator *( a: uint(16), b: uint(16)) + +.. function:: operator *( a: uint(32), b: uint(32)) + +.. function:: operator *( a: uint(64), b: uint(64)) + +.. function:: operator *( a: real(32), b: real(32)) + +.. function:: operator *( a: real(64), b: real(64)) + +.. function:: operator *( a: imag(32), b: imag(32)) + +.. function:: operator *( a: imag(64), b: imag(64)) + +.. function:: operator *( a: complex(64), b: complex(64)) + +.. function:: operator *( a: complex(128), b: complex(128)) + +.. function:: operator *( a: real(32), b: imag(32)) + +.. function:: operator *( a: real(64), b: imag(64)) + +.. function:: operator *( a: imag(32), b: real(32)) + +.. function:: operator *( a: imag(64), b: real(64)) + +.. function:: operator *( a: real(32), b: complex(64)) + +.. function:: operator *( a: real(64), b: complex(128)) + +.. function:: operator *( a: complex(64), b: real(32)) + +.. function:: operator *( a: complex(128), b: real(64)) + +.. function:: operator *( a: imag(32), b: complex(64)) + +.. function:: operator *( a: imag(64), b: complex(128)) + +.. function:: operator *( a: complex(64), b: imag(32)) + +.. function:: operator *( a: complex(128), b: imag(64)) + +.. function:: operator /( a: int(8), b: int(8)) + +.. function:: operator /( a: int(16), b: int(16)) + +.. function:: operator /( a: int(32), b: int(32)) + +.. function:: operator /( a: int(64), b: int(64)) + +.. function:: operator /( a: uint(8), b: uint(8)) + +.. function:: operator /( a: uint(16), b: uint(16)) + +.. function:: operator /( a: uint(32), b: uint(32)) + +.. function:: operator /( a: uint(64), b: uint(64)) + +.. function:: operator /( a: real(32), b: real(32)) + +.. function:: operator /( a: real(64), b: real(64)) + +.. function:: operator /( a: imag(32), b: imag(32)) + +.. function:: operator /( a: imag(64), b: imag(64)) + +.. function:: operator /( a: complex(64), b: complex(64)) + +.. function:: operator /( a: complex(128), b: complex(128)) + +.. function:: operator /( a: real(32), b: imag(32)) + +.. function:: operator /( a: real(64), b: imag(64)) + +.. function:: operator /( a: imag(32), b: real(32)) + +.. function:: operator /( a: imag(64), b: real(64)) + +.. function:: operator /( a: real(32), b: complex(64)) + +.. function:: operator /( a: real(64), b: complex(128)) + +.. function:: operator /( a: complex(64), b: real(32)) + +.. function:: operator /( a: complex(128), b: real(64)) + +.. function:: operator /( a: imag(32), b: complex(64)) + +.. function:: operator /( a: imag(64), b: complex(128)) + +.. function:: operator /( a: complex(64), b: imag(32)) + +.. function:: operator /( a: complex(128), b: imag(64)) + +.. function:: operator *(param a: int(8), param b: int(8)) param + +.. function:: operator *(param a: int(16), param b: int(16)) param + +.. function:: operator *(param a: int(32), param b: int(32)) param + +.. function:: operator *(param a: int(64), param b: int(64)) param + +.. function:: operator *(param a: uint(8), param b: uint(8)) param + +.. function:: operator *(param a: uint(16), param b: uint(16)) param + +.. function:: operator *(param a: uint(32), param b: uint(32)) param + +.. function:: operator *(param a: uint(64), param b: uint(64)) param + +.. function:: operator *(param a: real(32), param b: real(32)) param + +.. function:: operator *(param a: real(64), param b: real(64)) param + +.. function:: operator *(param a: imag(32), param b: imag(32)) param + +.. function:: operator *(param a: imag(64), param b: imag(64)) param + +.. function:: operator *(param a: real(32), param b: imag(32)) param + +.. function:: operator *(param a: real(64), param b: imag(64)) param + +.. function:: operator *(param a: imag(32), param b: real(32)) param + +.. function:: operator *(param a: imag(64), param b: real(64)) param + +.. function:: operator /(param a: int(8), param b: int(8)) param + +.. function:: operator /(param a: int(16), param b: int(16)) param + +.. function:: operator /(param a: int(32), param b: int(32)) param + +.. function:: operator /(param a: int(64), param b: int(64)) param + +.. function:: operator /(param a: uint(8), param b: uint(8)) param + +.. function:: operator /(param a: uint(16), param b: uint(16)) param + +.. function:: operator /(param a: uint(32), param b: uint(32)) param + +.. function:: operator /(param a: uint(64), param b: uint(64)) param + +.. function:: operator /(param a: real(32), param b: real(32)) param + +.. function:: operator /(param a: real(64), param b: real(64)) param + +.. function:: operator /(param a: imag(32), param b: imag(32)) param + +.. function:: operator /(param a: imag(64), param b: imag(64)) param + +.. function:: operator /(param a: real(32), param b: imag(32)) param + +.. function:: operator /(param a: real(64), param b: imag(64)) param + +.. function:: operator /(param a: imag(32), param b: real(32)) param + +.. function:: operator /(param a: imag(64), param b: real(64)) param + +.. function:: operator %( a: int(8), b: int(8)) + +.. function:: operator %( a: int(16), b: int(16)) + +.. function:: operator %( a: int(32), b: int(32)) + +.. function:: operator %( a: int(64), b: int(64)) + +.. function:: operator %( a: uint(8), b: uint(8)) + +.. function:: operator %( a: uint(16), b: uint(16)) + +.. function:: operator %( a: uint(32), b: uint(32)) + +.. function:: operator %( a: uint(64), b: uint(64)) + +.. function:: operator %(param a: int(8), param b: int(8)) param + +.. function:: operator %(param a: int(16), param b: int(16)) param + +.. function:: operator %(param a: int(32), param b: int(32)) param + +.. function:: operator %(param a: int(64), param b: int(64)) param + +.. function:: operator %(param a: uint(8), param b: uint(8)) param + +.. function:: operator %(param a: uint(16), param b: uint(16)) param + +.. function:: operator %(param a: uint(32), param b: uint(32)) param + +.. function:: operator %(param a: uint(64), param b: uint(64)) param + +.. function:: proc _intExpHelp( a: integral, b) where a.type == b.type + +.. function:: operator **( a: int(8), b: int(8)) + +.. function:: operator **( a: int(16), b: int(16)) + +.. function:: operator **( a: int(32), b: int(32)) + +.. function:: operator **( a: int(64), b: int(64)) + +.. function:: operator **( a: uint(8), b: uint(8)) + +.. function:: operator **( a: uint(16), b: uint(16)) + +.. function:: operator **( a: uint(32), b: uint(32)) + +.. function:: operator **( a: uint(64), b: uint(64)) + +.. function:: operator **( a: real(32), b: real(32)) + +.. function:: operator **( a: real(64), b: real(64)) + +.. function:: operator **( a: complex(64), b: complex(64)) + +.. function:: operator **( a: complex(128), b: complex(128)) + +.. function:: operator **(param a: int(8), param b: int(8)) param + +.. function:: operator **(param a: int(16), param b: int(16)) param + +.. function:: operator **(param a: int(32), param b: int(32)) param + +.. function:: operator **(param a: int(64), param b: int(64)) param + +.. function:: operator **(param a: uint(8), param b: uint(8)) param + +.. function:: operator **(param a: uint(16), param b: uint(16)) param + +.. function:: operator **(param a: uint(32), param b: uint(32)) param + +.. function:: operator **(param a: uint(64), param b: uint(64)) param + +.. function:: proc _expHelp( a, param b: integral) + +.. function:: proc _expBaseHelp(param a: int, b) where _basePowerTwo(a) + +.. function:: proc _canOptimizeExp(param b: integral) param + +.. function:: proc _basePowerTwo(param a: integral) param + +.. function:: operator **( a: int(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **( a: uint(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **( a: real(?w), param b: integral) where _canOptimizeExp(b) + +.. function:: operator **(param a: integral, b: int) where _basePowerTwo(a) + +.. function:: operator !( a: bool) + +.. function:: operator !( a: int(?w)) + +.. function:: operator !( a: uint(?w)) + +.. function:: proc isTrue( a: bool) + +.. function:: proc isTrue(param a: bool) param + +.. function:: proc isTrue( a: integral) + +.. function:: operator !(param a: bool) param + +.. function:: operator !(param a: int(?w)) param + +.. function:: operator !(param a: uint(?w)) param + +.. function:: operator ~( a: int(?w)) + +.. function:: operator ~( a: uint(?w)) + +.. function:: operator ~( a: bool) + +.. function:: operator &( a: bool, b: bool) + +.. function:: operator &( a: int(8), b: int(8)) + +.. function:: operator &( a: int(16), b: int(16)) + +.. function:: operator &( a: int(32), b: int(32)) + +.. function:: operator &( a: int(64), b: int(64)) + +.. function:: operator &( a: uint(8), b: uint(8)) + +.. function:: operator &( a: uint(16), b: uint(16)) + +.. function:: operator &( a: uint(32), b: uint(32)) + +.. function:: operator &( a: uint(64), b: uint(64)) + +.. function:: operator &( a: uint(8), b: int(8)) + +.. function:: operator &( a: uint(16), b: int(16)) + +.. function:: operator &( a: uint(32), b: int(32)) + +.. function:: operator &( a: uint(64), b: int(64)) + +.. function:: operator &( a: int(8), b: uint(8)) + +.. function:: operator &( a: int(16), b: uint(16)) + +.. function:: operator &( a: int(32), b: uint(32)) + +.. function:: operator &( a: int(64), b: uint(64)) + +.. function:: operator |( a: bool, b: bool) + +.. function:: operator |( a: int(8), b: int(8)) + +.. function:: operator |( a: int(16), b: int(16)) + +.. function:: operator |( a: int(32), b: int(32)) + +.. function:: operator |( a: int(64), b: int(64)) + +.. function:: operator |( a: uint(8), b: uint(8)) + +.. function:: operator |( a: uint(16), b: uint(16)) + +.. function:: operator |( a: uint(32), b: uint(32)) + +.. function:: operator |( a: uint(64), b: uint(64)) + +.. function:: operator |( a: uint(8), b: int(8)) + +.. function:: operator |( a: uint(16), b: int(16)) + +.. function:: operator |( a: uint(32), b: int(32)) + +.. function:: operator |( a: uint(64), b: int(64)) + +.. function:: operator |( a: int(8), b: uint(8)) + +.. function:: operator |( a: int(16), b: uint(16)) + +.. function:: operator |( a: int(32), b: uint(32)) + +.. function:: operator |( a: int(64), b: uint(64)) + +.. function:: operator ^( a: bool, b: bool) + +.. function:: operator ^( a: int(8), b: int(8)) + +.. function:: operator ^( a: int(16), b: int(16)) + +.. function:: operator ^( a: int(32), b: int(32)) + +.. function:: operator ^( a: int(64), b: int(64)) + +.. function:: operator ^( a: uint(8), b: uint(8)) + +.. function:: operator ^( a: uint(16), b: uint(16)) + +.. function:: operator ^( a: uint(32), b: uint(32)) + +.. function:: operator ^( a: uint(64), b: uint(64)) + +.. function:: operator ^( a: uint(8), b: int(8)) + +.. function:: operator ^( a: uint(16), b: int(16)) + +.. function:: operator ^( a: uint(32), b: int(32)) + +.. function:: operator ^( a: uint(64), b: int(64)) + +.. function:: operator ^( a: int(8), b: uint(8)) + +.. function:: operator ^( a: int(16), b: uint(16)) + +.. function:: operator ^( a: int(32), b: uint(32)) + +.. function:: operator ^( a: int(64), b: uint(64)) + +.. function:: operator ~(param a: bool) + +.. function:: operator ~(param a: int(?w)) param + +.. function:: operator ~(param a: uint(?w)) param + +.. function:: operator &(param a: bool, param b: bool) param + +.. function:: operator &(param a: int(8), param b: int(8)) param + +.. function:: operator &(param a: int(16), param b: int(16)) param + +.. function:: operator &(param a: int(32), param b: int(32)) param + +.. function:: operator &(param a: int(64), param b: int(64)) param + +.. function:: operator &(param a: uint(8), param b: uint(8)) param + +.. function:: operator &(param a: uint(16), param b: uint(16)) param + +.. function:: operator &(param a: uint(32), param b: uint(32)) param + +.. function:: operator &(param a: uint(64), param b: uint(64)) param + +.. function:: operator &(param a: uint(8), param b: int(8)) param + +.. function:: operator &(param a: uint(16), param b: int(16)) param + +.. function:: operator &(param a: uint(32), param b: int(32)) param + +.. function:: operator &(param a: uint(64), param b: int(64)) param + +.. function:: operator &(param a: int(8), param b: uint(8)) param + +.. function:: operator &(param a: int(16), param b: uint(16)) param + +.. function:: operator &(param a: int(32), param b: uint(32)) param + +.. function:: operator &(param a: int(64), param b: uint(64)) param + +.. function:: operator |(param a: bool, param b: bool) param + +.. function:: operator |(param a: int(8), param b: int(8)) param + +.. function:: operator |(param a: int(16), param b: int(16)) param + +.. function:: operator |(param a: int(32), param b: int(32)) param + +.. function:: operator |(param a: int(64), param b: int(64)) param + +.. function:: operator |(param a: uint(8), param b: uint(8)) param + +.. function:: operator |(param a: uint(16), param b: uint(16)) param + +.. function:: operator |(param a: uint(32), param b: uint(32)) param + +.. function:: operator |(param a: uint(64), param b: uint(64)) param + +.. function:: operator |(param a: uint(8), param b: int(8)) param + +.. function:: operator |(param a: uint(16), param b: int(16)) param + +.. function:: operator |(param a: uint(32), param b: int(32)) param + +.. function:: operator |(param a: uint(64), param b: int(64)) param + +.. function:: operator |(param a: int(8), param b: uint(8)) param + +.. function:: operator |(param a: int(16), param b: uint(16)) param + +.. function:: operator |(param a: int(32), param b: uint(32)) param + +.. function:: operator |(param a: int(64), param b: uint(64)) param + +.. function:: operator ^(param a: bool, param b: bool) param + +.. function:: operator ^(param a: int(8), param b: int(8)) param + +.. function:: operator ^(param a: int(16), param b: int(16)) param + +.. function:: operator ^(param a: int(32), param b: int(32)) param + +.. function:: operator ^(param a: int(64), param b: int(64)) param + +.. function:: operator ^(param a: uint(8), param b: uint(8)) param + +.. function:: operator ^(param a: uint(16), param b: uint(16)) param + +.. function:: operator ^(param a: uint(32), param b: uint(32)) param + +.. function:: operator ^(param a: uint(64), param b: uint(64)) param + +.. function:: operator ^(param a: uint(8), param b: int(8)) param + +.. function:: operator ^(param a: uint(16), param b: int(16)) param + +.. function:: operator ^(param a: uint(32), param b: int(32)) param + +.. function:: operator ^(param a: uint(64), param b: int(64)) param + +.. function:: operator ^(param a: int(8), param b: uint(8)) param + +.. function:: operator ^(param a: int(16), param b: uint(16)) param + +.. function:: operator ^(param a: int(32), param b: uint(32)) param + +.. function:: operator ^(param a: int(64), param b: uint(64)) param + +.. function:: proc bitshiftChecks( a, b: integral) + +.. function:: proc bitshiftChecks(param a, param b: integral) + +.. function:: operator <<( a: int(?w), b: integral) + +.. function:: operator <<( a: uint(?w), b: integral) + +.. function:: operator >>( a: int(?w), b: integral) + +.. function:: operator >>( a: uint(?w), b: integral) + +.. function:: operator <<(param a: int(?w), param b: integral) param + +.. function:: operator <<(param a: uint(?w), param b: integral) param + +.. function:: operator >>(param a: int(?w), param b: integral) param + +.. function:: operator >>(param a: uint(?w), param b: integral) param + +.. function:: proc postfix!( x: unmanaged(class)) + +.. function:: proc postfix!( x: borrowed(class)) + +.. function:: proc postfix!( x: unmanaged(class?)) + +.. function:: proc postfix!( x: borrowed(class?)) + +.. function:: proc postfix!( x) + +.. function:: proc chpl_statementLevelSymbol( a) + +.. function:: proc chpl_statementLevelSymbol( a: sync) + +.. function:: proc chpl_statementLevelSymbol( a: single) + +.. function:: proc chpl_statementLevelSymbol( ir: _iteratorRecord) + +.. function:: proc _cond_test(param x: ?t) param: bool + +.. function:: proc _cond_test( x: ?t) : bool + +.. function:: proc _cond_invalid( x: borrowed(RootClass?)) param + +.. function:: proc _cond_invalid( x: bool) param + +.. function:: proc _cond_invalid( x: int) param + +.. function:: proc _cond_invalid( x: uint) param + +.. function:: proc _cond_invalid( x) param + +.. function:: proc isNonnegative( i: int(?)) + +.. function:: proc isNonnegative( i: uint(?)) param + +.. function:: proc isNonnegative(param i) param + +.. method:: proc ref chpl_anycomplex.re ref + +.. method:: proc param chpl_anycomplex.re param + +.. method:: proc chpl_anycomplex.re + +.. method:: proc ref chpl_anycomplex.im ref + +.. method:: proc param chpl_anycomplex.im param + +.. method:: proc chpl_anycomplex.im + +.. function:: proc _i2r( a: imag(?w)) + +.. function:: proc _r2i( a: real(?w)) + +.. enum:: enum ArrayInit { heuristicInit, noInit, serialInit, parallelInit, gpuInit } + + .. enumconstant:: enum constant heuristicInit + + .. enumconstant:: enum constant noInit + + .. enumconstant:: enum constant serialInit + + .. enumconstant:: enum constant parallelInit + + .. enumconstant:: enum constant gpuInit + +.. data:: config param chpl_defaultArrayInitMethod = ArrayInit.heuristicInit + +.. data:: config param chpl_defaultGpuArrayInitMethod = if CHPL_GPU_MEM_STRATEGY == "array_on_device" then ArrayInit.gpuInit else chpl_defaultArrayInitMethod + +.. data:: config param chpl_arrayInitMethodRuntimeSelectable = false + +.. function:: proc chpl_setArrayInitMethod( initMethod: ArrayInit) + +.. function:: proc chpl_getArrayInitMethod() + +.. function:: proc chpl_shouldDoGpuInit() : bool + +.. function:: proc init_elts_method( s, type t) + +.. function:: proc init_elts( x, s, type t, lo = 0: s.type) : void + +.. type:: type chpl_mem_descInt_t = int(16) + +.. enum:: enum chpl_ddataResizePolicy { normalInit, skipInit, skipInitButClearMem } + + .. enumconstant:: enum constant normalInit + + .. enumconstant:: enum constant skipInit + + .. enumconstant:: enum constant skipInitButClearMem + +.. class:: _ddata + + .. attribute:: type eltType + + .. method:: proc this( i: integral) ref + +.. function:: proc chpl_isDdata(type t: _ddata) param + +.. function:: proc chpl_isDdata(type t) param + +.. function:: operator = (ref a: _ddata(?t), b: _ddata(t)) + +.. function:: proc _ddata_shift(type eltType, data: _ddata(eltType), shift: integral) + +.. function:: proc _ddata_sizeof_element(type t: _ddata) : c_size_t + +.. function:: proc _ddata_sizeof_element( x: _ddata) : c_size_t + +.. function:: proc _ddata_allocate_noinit(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none, haltOnOom: bool = true) + +.. function:: proc _try_ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none) throws + +.. function:: proc _ddata_allocate_noinit_gpu_shared(type eltType, size: integral, out callPostAlloc: bool, subloc = c_sublocid_none) + +.. function:: proc _ddata_allocate_postalloc( data: _ddata, size: integral) + +.. function:: proc _ddata_allocate(type eltType, size: integral, subloc = c_sublocid_none) + +.. function:: proc _ddata_supports_reallocate( oldDdata, type eltType, oldSize: integral, newSize: integral) + +.. function:: proc _ddata_fill( ddata, type eltType, lo: integral, hi: integral, fill: int(8) = 0) + +.. function:: proc _ddata_reallocate( oldDdata, type eltType, oldSize: integral, newSize: integral, subloc = c_sublocid_none, policy = chpl_ddataResizePolicy.normalInit) + +.. function:: proc _ddata_free( data: _ddata, size: integral) + +.. function:: operator ==( a: _ddata, b: _ddata) where _to_borrowed(a.eltType) == _to_borrowed(b.eltType) + +.. function:: operator ==( a: _ddata, b: _nilType) + +.. function:: operator ==( a: _nilType, b: _ddata) + +.. function:: operator !=( a: _ddata, b: _ddata) where a.eltType == b.eltType + +.. function:: operator !=( a: _ddata, b: _nilType) + +.. function:: operator !=( a: _nilType, b: _ddata) + +.. function:: proc _cond_test( x: _ddata) + +.. class:: _ref + + .. attribute:: var _val + +.. function:: proc chpl_rt_reset_task_spawn() + +.. function:: proc chpl_resetTaskSpawn( numTasks) + +.. data:: config param useAtomicTaskCnt = defaultAtomicTaskCount() + +.. function:: proc defaultAtomicTaskCount() param + +.. data:: config param commDiagsTrackEndCounts = false + +.. record:: endCountDiagsManager : contextManager + + .. attribute:: var taskInfo: c_ptr(chpl_task_infoChapel_t) + + .. attribute:: var prevDiagsDisabledVal: bool + + .. method:: proc ref enterContext() + + .. method:: proc exitContext(in unused: owned(Error?)) + +.. class:: _EndCountBase + + .. attribute:: var errors: chpl_TaskErrors + +.. class:: _EndCount : _EndCountBase + + .. attribute:: type iType + + .. attribute:: type taskType + + .. attribute:: var i: iType + + .. attribute:: var taskCnt: taskType + + .. method:: proc init(type iType, type taskType) + + .. method:: proc add( value: int, param order: memoryOrder) + + .. method:: proc sub( value: int, param order: memoryOrder) + + .. method:: proc waitFor( value: int, param order: memoryOrder) + +.. function:: proc _endCountAlloc(param forceLocalTypes: bool) + +.. type:: type _remoteEndCountType = _endCountAlloc(false).type + +.. function:: proc _endCountFree( e: _EndCount) + +.. function:: proc _upEndCount( e: _EndCount, param countRunningTasks = true) + +.. function:: proc _upEndCount( e: _EndCount, param countRunningTasks = true, numTasks) + +.. function:: proc chpl_comm_unordered_task_fence() : void + +.. function:: proc chpl_comm_task_create() + +.. function:: proc chpl_comm_task_end() : void + +.. function:: proc chpl_after_forall_fence() + +.. function:: proc _downEndCount( e: _EndCount, err: unmanaged(Error?)) + +.. function:: proc _waitEndCount( e: _EndCount, param countRunningTasks = true) throws + +.. function:: proc _waitEndCount( e: _EndCount, param countRunningTasks = true, numTasks) throws + +.. function:: proc _upDynamicEndCount(param countRunningTasks = true) + +.. function:: proc _downDynamicEndCount( err: unmanaged(Error?)) + +.. function:: proc chpl_waitDynamicEndCount(param countRunningTasks = true) throws + +.. method:: proc param (real(64)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (real(32)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc (real(?w)).transmute(type t) : t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (uint(64)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc param (uint(32)).transmute(type t) param: t + + .. warning:: + + This routine may change names / signatures + +.. method:: proc (uint(?w)).transmute(type t) : t + + .. warning:: + + This routine may change names / signatures + +.. function:: proc chpl_typeSupportsPrimitiveCast(type t) param + +.. function:: operator :( x: bool, type t: integral) + +.. function:: operator :( x: bool, type t: chpl_anyreal) + +.. function:: operator :( x: integral, type t: bool) + +.. function:: operator :( x: integral, type t: integral) + +.. function:: operator :( x: integral, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anyreal, type t: bool) + +.. function:: operator :( x: chpl_anyreal, type t: integral) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anyreal) + +.. function:: proc chpl_checkCastAbstractEnumError(type enumType, type dstType) param + +.. function:: operator :( x: enum, type t: bool) throws + + .. warning:: + + enum-to-bool casts are likely to be deprecated in the future + +.. function:: operator :( x: enum, type t: enum) where x.type == t + +.. function:: operator :( x: enum, type t: chpl_anyreal) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: _nilType, type t: unmanaged(class)) + +.. function:: operator :( x: _nilType, type t: borrowed(class)) + +.. function:: proc chpl_castUnmanagedError(param typeStr: string) param + +.. function:: operator :( x: owned(class), type t: unmanaged(class)) + +.. function:: operator :( x: owned(class?), type t: unmanaged(class)) + +.. function:: operator :( x: owned(class), type t: unmanaged(class?)) + +.. function:: operator :( x: owned(class?), type t: unmanaged(class?)) + +.. function:: operator :( x: shared(class), type t: unmanaged(class)) + +.. function:: operator :( x: shared(class?), type t: unmanaged(class)) + +.. function:: operator :( x: shared(class), type t: unmanaged(class?)) + +.. function:: operator :( x: shared(class?), type t: unmanaged(class?)) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class?)) where isSubtype(_to_unmanaged(x.type), t) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class?)) where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class)) where isSubtype(_to_unmanaged(x.type), t) + +.. function:: operator :( x: unmanaged(class?), type t: borrowed(class)) throws where isSubtype(_to_nonnil(x.type), t) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class)) throws where isSubtype(_to_nonnil(x.type), t) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class)) throws where isSubtype(_to_nonnil(_to_unmanaged(x.type)), t) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class)) throws where isProperSubtype(t, _to_nonnil(x.type)) + +.. function:: operator :( x: borrowed(class?), type t: borrowed(class?)) where isProperSubtype(t, x.type) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class)) throws where isProperSubtype(t, _to_nonnil(_to_unmanaged(x.type))) + +.. function:: operator :( x: borrowed(class?), type t: unmanaged(class?)) where isProperSubtype(t, _to_unmanaged(x.type)) + +.. function:: operator :( x: borrowed(class), type t: unmanaged(class?)) where isProperSubtype(_to_nonnil(_to_borrowed(t)), x.type) + +.. function:: operator :( x: bool, type t: chpl_anycomplex) + +.. function:: operator :( x: integral, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anycomplex) + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anycomplex) + +.. function:: operator :( x: enum, type t: chpl_anycomplex) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: bool, type t: chpl_anyimag) + +.. function:: operator :( x: integral, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anyreal, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anyimag) + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anyimag) + +.. function:: operator :( x: enum, type t: chpl_anyimag) throws + + .. warning:: + + enum-to-float casts are likely to be deprecated in the future + +.. function:: operator :( x: chpl_anycomplex, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anycomplex, type t: integral) + +.. function:: operator :( x: chpl_anyimag, type t: chpl_anyreal) + +.. function:: operator :( x: chpl_anyimag, type t: integral) + +.. function:: operator :( x: chpl_anyimag, type t: bool) + +.. function:: proc chpl__initCopy(type t, definedConst: bool) type + +.. function:: proc chpl__initCopy( x: _tuple, definedConst: bool) + +.. function:: proc chpl__initCopy(const x, definedConst: bool) + +.. function:: proc chpl__autoCopy( x: _tuple, definedConst: bool) + +.. function:: proc chpl__unref( x: _tuple) + +.. function:: proc chpl__autoCopy( ir: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__autoCopy(const x, definedConst: bool) + +.. function:: proc chpl__autoDestroy( x: borrowed(RootClass)) + +.. function:: proc chpl__autoDestroy(type t) + +.. function:: proc chpl__autoDestroy( x) + +.. function:: proc chpl__autoDestroy( ir: _iteratorRecord) + +.. function:: proc chpl__autoDestroy( x: _distribution) + +.. function:: proc chpl__autoDestroy( x: domain) + +.. function:: proc chpl__autoDestroy( x: []) + +.. function:: proc chpl__delete(const arg) + +.. function:: proc chpl__delete(const arr: []) + +.. function:: proc chpl__delete( arg, const args ...) + +.. function:: proc func() type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc func(type rettype) type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc func(type t ...?n, type rettype) type + + .. warning:: + + The 'func' procedure type constructor is deprecated, please use 'proc' syntax instead + +.. function:: proc isIterator( ic: _iteratorClass) param + +.. function:: proc isIterator( ir: _iteratorRecord) param + +.. function:: proc isIterator( not_an_iterator) param + +.. function:: operator +=(ref lhs: int(8), rhs: int(8)) + + op= operators + + +.. function:: operator +=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator +=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator +=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator +=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator +=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator +=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator +=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator +=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator +=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator +=(ref lhs: imag(32), rhs: imag(32)) + +.. function:: operator +=(ref lhs: imag(64), rhs: imag(64)) + +.. function:: operator +=(ref lhs: complex(64), rhs: complex(64)) + +.. function:: operator +=(ref lhs: complex(128), rhs: complex(128)) + +.. function:: operator +=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator -=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator -=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator -=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator -=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator -=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator -=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator -=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator -=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator -=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator -=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator -=(ref lhs: imag(32), rhs: imag(32)) + +.. function:: operator -=(ref lhs: imag(64), rhs: imag(64)) + +.. function:: operator -=(ref lhs: complex(64), rhs: complex(64)) + +.. function:: operator -=(ref lhs: complex(128), rhs: complex(128)) + +.. function:: operator -=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator *=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator *=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator *=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator *=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator *=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator *=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator *=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator *=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator *=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator *=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator *=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator /=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator /=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator /=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator /=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator /=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator /=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator /=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator /=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator /=(ref lhs: real(32), rhs: real(32)) + +.. function:: operator /=(ref lhs: real(64), rhs: real(64)) + +.. function:: operator /=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator %=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator %=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator %=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator %=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator %=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator %=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator %=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator %=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator %=(ref lhs, rhs) where !(isIntegralOrRealType(lhs.type) && isIntegralOrRealType(rhs.type)) + +.. function:: operator **=(ref lhs, rhs) + +.. function:: operator &=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator &=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator &=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator &=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator &=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator &=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator &=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator &=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator &=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator |=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator |=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator |=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator |=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator |=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator |=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator |=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator |=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator |=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator ^=(ref lhs: int(8), rhs: int(8)) + +.. function:: operator ^=(ref lhs: int(16), rhs: int(16)) + +.. function:: operator ^=(ref lhs: int(32), rhs: int(32)) + +.. function:: operator ^=(ref lhs: int(64), rhs: int(64)) + +.. function:: operator ^=(ref lhs: uint(8), rhs: uint(8)) + +.. function:: operator ^=(ref lhs: uint(16), rhs: uint(16)) + +.. function:: operator ^=(ref lhs: uint(32), rhs: uint(32)) + +.. function:: operator ^=(ref lhs: uint(64), rhs: uint(64)) + +.. function:: operator ^=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator >>=(ref lhs: int(?w), rhs: integral) + +.. function:: operator >>=(ref lhs: uint(?w), rhs: integral) + +.. function:: operator >>=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator <<=(ref lhs: int(?w), rhs: integral) + +.. function:: operator <<=(ref lhs: uint(?w), rhs: integral) + +.. function:: operator <<=(ref lhs, rhs) where !(isNumericType(lhs.type) && isNumericType(rhs.type)) + +.. function:: operator <=>(ref lhs, ref rhs) + + swap operator + +.. function:: operator +( a: uint(64), param b: uint(64)) + +.. function:: operator +(param a: uint(64), b: uint(64)) + +.. function:: operator +( a: int(64), param b: int(64)) + +.. function:: operator +(param a: int(64), b: int(64)) + +.. function:: operator -( a: uint(64), param b: uint(64)) + +.. function:: operator -(param a: uint(64), b: uint(64)) + +.. function:: operator -( a: int(64), param b: int(64)) + +.. function:: operator -(param a: int(64), b: int(64)) + +.. function:: operator *( a: uint(64), param b: uint(64)) + +.. function:: operator *(param a: uint(64), b: uint(64)) + +.. function:: operator *( a: int(64), param b: int(64)) + +.. function:: operator *(param a: int(64), b: int(64)) + +.. function:: operator /( a: int(64), param b: int(64)) + +.. function:: operator /( a: uint(64), param b: uint(64)) + +.. function:: operator /(param a: uint(64), b: uint(64)) + +.. function:: operator /(param a: int(64), b: int(64)) + +.. function:: operator **( a: uint(64), param b: uint(64)) + +.. function:: operator **(param a: uint(64), b: uint(64)) + +.. function:: operator **( a: int(64), param b: int(64)) + +.. function:: operator **(param a: int(64), b: int(64)) + +.. function:: operator %( a: uint(64), param b: uint(64)) + +.. function:: operator %(param a: uint(64), b: uint(64)) + +.. function:: operator %( a: int(64), param b: int(64)) + +.. function:: operator %(param a: int(64), b: int(64)) + +.. function:: operator ==( a: uint(8), b: int(8)) + +.. function:: operator ==( a: uint(16), b: int(16)) + +.. function:: operator ==( a: uint(32), b: int(32)) + +.. function:: operator ==( a: uint(64), b: int(64)) + +.. function:: operator ==( a: int(8), b: uint(8)) + +.. function:: operator ==( a: int(16), b: uint(16)) + +.. function:: operator ==( a: int(32), b: uint(32)) + +.. function:: operator ==( a: int(64), b: uint(64)) + +.. function:: operator !=( a: uint(8), b: int(8)) + +.. function:: operator !=( a: uint(16), b: int(16)) + +.. function:: operator !=( a: uint(32), b: int(32)) + +.. function:: operator !=( a: uint(64), b: int(64)) + +.. function:: operator !=( a: int(8), b: uint(8)) + +.. function:: operator !=( a: int(16), b: uint(16)) + +.. function:: operator !=( a: int(32), b: uint(32)) + +.. function:: operator !=( a: int(64), b: uint(64)) + +.. function:: operator >( a: uint(8), b: int(8)) + +.. function:: operator >( a: uint(16), b: int(16)) + +.. function:: operator >( a: uint(32), b: int(32)) + +.. function:: operator >( a: uint(64), b: int(64)) + +.. function:: operator >( a: int(8), b: uint(8)) + +.. function:: operator >( a: int(16), b: uint(16)) + +.. function:: operator >( a: int(32), b: uint(32)) + +.. function:: operator >( a: int(64), b: uint(64)) + +.. function:: operator >(param a: uint(8), b: uint(8)) + +.. function:: operator >(param a: uint(16), b: uint(16)) + +.. function:: operator >(param a: uint(32), b: uint(32)) + +.. function:: operator >(param a: uint(64), b: uint(64)) + +.. function:: operator >(param a: int(8), b: int(8)) + +.. function:: operator >(param a: int(16), b: int(16)) + +.. function:: operator >(param a: int(32), b: int(32)) + +.. function:: operator >(param a: int(64), b: int(64)) + +.. function:: operator >=( a: uint(8), b: int(8)) + +.. function:: operator >=( a: uint(16), b: int(16)) + +.. function:: operator >=( a: uint(32), b: int(32)) + +.. function:: operator >=( a: uint(64), b: int(64)) + +.. function:: operator >=( a: int(8), b: uint(8)) + +.. function:: operator >=( a: int(16), b: uint(16)) + +.. function:: operator >=( a: int(32), b: uint(32)) + +.. function:: operator >=( a: int(64), b: uint(64)) + +.. function:: operator >=( a: uint(8), param b: uint(8)) + +.. function:: operator >=( a: uint(16), param b: uint(16)) + +.. function:: operator >=( a: uint(32), param b: uint(32)) + +.. function:: operator >=( a: uint(64), param b: uint(64)) + +.. function:: operator >=( a: int(8), param b: int(8)) + +.. function:: operator >=( a: int(16), param b: int(16)) + +.. function:: operator >=( a: int(32), param b: int(32)) + +.. function:: operator >=( a: int(64), param b: int(64)) + +.. function:: operator <=( a: uint(8), b: int(8)) + +.. function:: operator <=( a: uint(16), b: int(16)) + +.. function:: operator <=( a: uint(32), b: int(32)) + +.. function:: operator <=( a: uint(64), b: int(64)) + +.. function:: operator <=( a: int(8), b: uint(8)) + +.. function:: operator <=( a: int(16), b: uint(16)) + +.. function:: operator <=( a: int(32), b: uint(32)) + +.. function:: operator <=( a: int(64), b: uint(64)) + +.. function:: operator <=(param a: uint(8), b: uint(8)) + +.. function:: operator <=(param a: uint(16), b: uint(16)) + +.. function:: operator <=(param a: uint(32), b: uint(32)) + +.. function:: operator <=(param a: uint(64), b: uint(64)) + +.. function:: operator <=(param a: int(8), b: int(8)) + +.. function:: operator <=(param a: int(16), b: int(16)) + +.. function:: operator <=(param a: int(32), b: int(32)) + +.. function:: operator <=(param a: int(64), b: int(64)) + +.. function:: proc isGenericType(type t) param + +.. function:: proc isNilableClassType(type t) param + +.. function:: proc isNonNilableClassType(type t) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t: unmanaged) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t: borrowed) param + +.. function:: proc isBorrowedOrUnmanagedClassType(type t) param + +.. data:: const QIO_STYLE_ELEMENT_STRING: int + +.. data:: const QIO_STYLE_ELEMENT_COMPLEX: int + +.. data:: const QIO_STYLE_ELEMENT_ARRAY: int + +.. data:: const QIO_STYLE_ELEMENT_AGGREGATE: int + +.. data:: const QIO_STYLE_ELEMENT_TUPLE: int + +.. data:: const QIO_STYLE_ELEMENT_BYTE_ORDER: int + +.. data:: const QIO_STYLE_ELEMENT_IS_NATIVE_BYTE_ORDER: int + +.. data:: const QIO_STYLE_ELEMENT_SKIP_UNKNOWN_FIELDS: int + +.. data:: const QIO_ARRAY_FORMAT_SPACE: int + +.. data:: const QIO_ARRAY_FORMAT_CHPL: int + +.. data:: const QIO_ARRAY_FORMAT_JSON: int + +.. data:: const QIO_AGGREGATE_FORMAT_BRACES: int + +.. data:: const QIO_AGGREGATE_FORMAT_CHPL: int + +.. data:: const QIO_AGGREGATE_FORMAT_JSON: int + +.. data:: const QIO_TUPLE_FORMAT_CHPL: int + +.. data:: const QIO_TUPLE_FORMAT_SPACE: int + +.. data:: const QIO_TUPLE_FORMAT_JSON: int + +.. class:: chpl_ModuleDeinit : writeSerializable + + .. attribute:: const moduleName: c_ptrConst(c_char) + + .. attribute:: const deinitFun: chpl_c_fn_ptr + + .. attribute:: const prevModule: unmanaged(chpl_ModuleDeinit?) + + .. method:: override proc serialize( writer, ref serializer) throws + +.. data:: var chpl_moduleDeinitFuns = nil: unmanaged(chpl_ModuleDeinit?) + +.. function:: proc chpl_checkLegalTypeFieldAccessor( thisArg, type fieldType, param fieldName) type + +.. function:: proc chpl_checkLegalTypeFieldAccessor(type thisArg, type fieldType, param fieldName) type + +.. function:: proc _to_unmanaged(type t) type + +.. function:: proc _to_unmanaged( arg) + +.. function:: proc _to_borrowed(type t) type + +.. function:: proc _to_borrowed( arg) + +.. function:: proc _to_nonnil(type t) type + +.. function:: proc _to_nonnil( arg) + +.. function:: proc _to_nilable(type t) type + +.. function:: proc _to_nilable( arg) + +.. function:: proc chpl_checkBorrowIfVar( arg, param isWhile) + +.. function:: proc chpl_checkBorrowIfVar(type arg, param isWhile) + +.. function:: proc _removed_cast(in x) + +.. function:: proc chpl_supportsBoundedCoforall( iterable, param zippered) param + +.. function:: proc chpl_boundedCoforallSize( iterable, param zippered) + +.. function:: proc chpl_field_neq( a: [] ?t, b: [] t) + + The following chpl_field_*() overloads support compiler-generated + comparison operators for records with array fields + +.. function:: proc chpl_field_neq( a, b) where !isArrayType(a.type) + +.. function:: proc chpl_field_lt( a: [] ?t, b: [] t) + +.. function:: proc chpl_field_lt( a, b) where !isArrayType(a.type) + +.. function:: proc chpl_field_gt( a: [] ?t, b: [] t) + +.. function:: proc chpl_field_gt( a, b) where !isArrayType(a.type) + +.. function:: proc chpl__bothLocal(const ref a, const ref b) + diff --git a/docs/internal/source/modules/internal/ChapelBase/currentTask.rst b/docs/internal/source/modules/internal/ChapelBase/currentTask.rst new file mode 100644 index 000000000..60a1b16e1 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelBase/currentTask.rst @@ -0,0 +1,22 @@ +.. default-domain:: chpl + +.. module:: currentTask + :noindex: + +currentTask +=========== +**Usage** + +.. code-block:: chapel + + use ChapelBase.currentTask; + + +or + +.. code-block:: chapel + + import ChapelBase.currentTask; + +.. function:: proc yieldExecution() + diff --git a/docs/internal/source/modules/internal/ChapelContext.rst b/docs/internal/source/modules/internal/ChapelContext.rst new file mode 100644 index 000000000..4afa8626b --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelContext.rst @@ -0,0 +1,22 @@ +.. default-domain:: chpl + +.. module:: ChapelContext + :noindex: + +ChapelContext +============= +**Usage** + +.. code-block:: chapel + + use ChapelContext; + + +or + +.. code-block:: chapel + + import ChapelContext; + +.. function:: proc chpl__verifyTypeContext( x) + diff --git a/docs/internal/source/modules/internal/ChapelDebugPrint.rst b/docs/internal/source/modules/internal/ChapelDebugPrint.rst new file mode 100644 index 000000000..a598b007b --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelDebugPrint.rst @@ -0,0 +1,44 @@ +.. default-domain:: chpl + +.. module:: ChapelDebugPrint + :noindex: + +ChapelDebugPrint +================ +**Usage** + +.. code-block:: chapel + + use ChapelDebugPrint; + + +or + +.. code-block:: chapel + + import ChapelDebugPrint; + +Debug printing for internal modules. + +In order to work around problems with resolution order +(commonly, stdout not defined in methods in DefaultRectangular), +this module implements a debug printing facility that can +be used before IO.chpl is resolved (or initialized). + + +.. function:: proc chpl_debug_stringify(args ...) : string + +.. function:: proc chpl_debug_writeln(args ...) + +.. data:: config param chpl__testParFlag = false + +.. data:: var chpl__testParOn = false + +.. function:: proc chpl__testParStart() + +.. function:: proc chpl__testParStop() + +.. function:: proc chpl__testPar(args ...) + +.. function:: proc chpl__testParWriteln(args ...) + diff --git a/docs/internal/source/modules/internal/ChapelDistribution.rst b/docs/internal/source/modules/internal/ChapelDistribution.rst new file mode 100644 index 000000000..23427d183 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelDistribution.rst @@ -0,0 +1,557 @@ +.. default-domain:: chpl + +.. module:: ChapelDistribution + :noindex: + +ChapelDistribution +================== +**Usage** + +.. code-block:: chapel + + use ChapelDistribution; + + +or + +.. code-block:: chapel + + import ChapelDistribution; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: _distribution : writeSerializable, readDeserializable + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc init( _pid: int, _instance, _unowned: bool) + + .. method:: proc init( value) + + .. method:: proc init=(const ref other: _distribution) + + .. method:: proc _value + + .. method:: proc _do_destroy() + + .. method:: proc deinit() + + .. method:: proc clone() + + .. method:: proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false) + + .. method:: proc newRectangularDom(param rank: int, type idxType, param strides: strideKind, definedConst: bool = false) + + .. method:: proc newAssociativeDom(type idxType, param parSafe: bool = true) + + .. method:: proc newSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc idxToLocale( ind) + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc displayRepresentation() + + .. method:: proc targetLocales() const ref + + + Return an array of locales over which this distribution was declared. + + +.. class:: BaseDist + + .. attribute:: var _doms_containing_dist: int + + .. attribute:: var _domsLock: chpl_LocalSpinlock + + .. attribute:: var _free_when_no_doms: bool + + .. attribute:: var pid: int = nullPid + + .. method:: proc deinit() + + .. method:: proc remove() : unmanaged(BaseDist?) + + .. method:: proc remove_dom( x: unmanaged(BaseDom)) : bool + + .. method:: proc add_dom( x: unmanaged(BaseDom)) + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds) + + .. method:: proc dsiNewAssociativeDom(type idxType, param parSafe: bool) + + .. method:: proc dsiNewSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc dsiDestroyDist() + + .. method:: proc trackDomains() param + + .. method:: proc dsiTrackDomains() + + .. method:: proc singleton() param + + .. method:: proc dsiIsLayout() param + +.. class:: BaseDom + + .. attribute:: var _arrs_head: unmanaged(BaseArr?) + + .. attribute:: var _arrs_containing_dom: int + + .. attribute:: var _arrsLock: chpl_LocalSpinlock + + .. attribute:: var _free_when_no_arrs: bool + + .. attribute:: var pid: int = nullPid + + .. attribute:: var definedConst: bool + + .. method:: proc init() + + .. method:: proc deinit() + + .. itermethod:: iter _arrs : unmanaged(BaseArr) + + .. method:: proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: proc dnsError(param op: string) + + .. method:: proc dsiLow + + .. method:: proc dsiHigh + + .. method:: proc dsiAlignedLow + + .. method:: proc dsiAlignedHigh + + .. method:: proc dsiFirst + + .. method:: proc dsiLast + + .. method:: proc dsiStride + + .. method:: proc dsiAlignment + + .. method:: proc dsiIndexOrder( i) + + .. method:: proc dsiCreateIndexBuffer( size) + + .. method:: proc trackArrays() + + .. method:: proc remove() : (unmanaged(BaseDom?), unmanaged(BaseDist?)) + + .. method:: proc remove_arr( x: unmanaged(BaseArr), param rmFromList = true) : bool + + .. method:: proc add_arr( x: unmanaged(BaseArr), param locking = true, param addToList = true) + + .. method:: proc remove_containing_arr( x: unmanaged(BaseArr)) + + .. method:: proc add_containing_arr( x: unmanaged(BaseArr)) + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc linksDistribution() param + + .. method:: proc dsiLinksDistribution() + + .. method:: proc dsiDestroyDom() + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiSupportsAutoLocalAccess() param + + .. method:: proc dsiSupportsOffsetAutoLocalAccess() param + + .. method:: proc dsiAutoLocalAccessOffsetCheck( offsets) + + .. method:: proc dsiIteratorYieldsLocalElements() param + + .. method:: proc isRectangular() param + + .. method:: proc isAssociative() param + + .. method:: proc isSparse() param + + .. method:: proc type isDefaultRectangular() param + + .. method:: proc isDefaultRectangular() param + + .. method:: proc isSliceDomainView() param + + .. method:: proc isRankChangeDomainView() param + + .. method:: proc isReindexDomainView() param + +.. class:: BaseRectangularDom : BaseDom + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: override proc isRectangular() param + + .. method:: proc getBaseArrType() type + + .. method:: proc deinit() + + .. method:: proc dsiAdd(in x) + + .. method:: proc dsiRemove( x) + +.. class:: BaseSparseDomImpl : BaseSparseDom(?) + + .. attribute:: var nnzDom = {1..0} + + .. method:: proc deinit() + + .. method:: override proc dsiBulkAdd( inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: override proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc _grow( size: int, factor = arrayAsVecGrowthFactor) + + Grow domain if necessary + + .. method:: proc _shrink( size: int, factor = arrayAsVecGrowthFactor) + + Shrink domain if necessary + + .. method:: proc _bulkGrow() + + .. method:: proc _countDuplicates( arr) where isArray(arr) + + .. method:: proc bulkAdd_prepareInds(ref inds, dataSorted, isUnique, cmp) + + .. method:: proc __getActualInsertPts( d, inds, isUnique) + + .. method:: proc dsiClear() + +.. record:: SparseIndexBuffer + + .. attribute:: param rank: int + + .. attribute:: var obj: borrowed(BaseSparseDom(?)) + + .. attribute:: type idxType = if rank == 1 then int else rank * int + + .. attribute:: var bufDom = domain(1) + + .. attribute:: var buf: [bufDom] idxType + + .. attribute:: var cur = 0 + + .. method:: proc init( size, param rank: int, obj) + + .. method:: proc ref deinit() + + .. method:: proc ref add( idx: idxType) + + .. method:: proc ref commit() + +.. class:: BaseSparseDom : BaseDom + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: var parentDom + + .. method:: override proc isSparse() param + + var nnz = 0; //: int; + + .. method:: proc getNNZ() : int + + .. method:: proc deinit() + + .. method:: proc dsiClear() + + .. method:: proc dsiBulkAdd( inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc dsiBulkAddNoPreserveInds(ref inds: [] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) : int + + .. method:: proc boundsCheck( ind: index(rank, idxType)) : void + + .. method:: proc canDoDirectAssignment( rhs: domain) + + .. method:: proc dsiDim( d: int) + + .. method:: proc dsiDims() + + .. method:: proc dsiNumIndices + + .. method:: proc dsiSize + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst : rank*idxType + + .. method:: override proc dsiLast : rank*idxType + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiCreateIndexBuffer( size) + +.. class:: BaseAssociativeDom : BaseDom + + .. method:: override proc isAssociative() param + + .. method:: proc deinit() + + .. method:: proc dsiClear() + + .. method:: proc dsiAdd(in idx) + + .. method:: proc rank param + +.. class:: BaseArr + + .. attribute:: var prev: unmanaged(BaseArr?) + + .. attribute:: var next: unmanaged(BaseArr?) + + .. attribute:: var pid: int = nullPid + + .. attribute:: var _decEltRefCounts: bool = false + + .. attribute:: var _resizePolicy = chpl_ddataResizePolicy.normalInit + + .. method:: proc chpl__rvfMe() param + + .. method:: proc isSliceArrayView() param + + .. method:: proc isRankChangeArrayView() param + + .. method:: proc isReindexArrayView() param + + .. method:: proc deinit() + + .. method:: proc dsiStaticFastFollowCheck(type leadType) param + + .. method:: proc dsiGetBaseDom() : unmanaged(BaseDom) + + .. method:: proc remove(param rmFromList: bool) + + .. method:: proc chpl_setResizePolicy( policy: chpl_ddataResizePolicy) + + .. method:: proc chpl_isElementTypeDefaultInitializable() : bool + + .. method:: proc chpl_isElementTypeNonNilableClass() : bool + + .. method:: proc chpl_unsafeAssignIsClassElementNil( manager, idx) : bool + + .. method:: proc chpl_unsafeAssignHaltUninitializedElement( idx) + + .. method:: proc dsiElementInitializationComplete() + + .. method:: proc dsiElementDeinitializationComplete() + + .. method:: proc dsiDestroyArr( deinitElts: bool) + + .. method:: proc dsiReallocate( d: domain) + + .. method:: proc dsiPostReallocate() + + .. method:: proc _purge( ind: int) + + .. method:: proc _resize( length: int, old_map) + + .. method:: proc sparseShiftArray( shiftrange, initrange) + + .. method:: proc sparseShiftArrayBack( shiftrange) + + .. method:: proc sparseBulkShiftArray( shiftMap, oldnnz) + + .. method:: proc _defaultInitSlot( slot: int) + + .. method:: proc _deinitSlot( slot: int) + + .. method:: proc _startRehash( newSize: int) + + .. method:: proc _finishRehash( oldSize: int) + + .. method:: proc _moveElementDuringRehash( oldslot: int, newslot: int) + + .. method:: proc dsiDisplayRepresentation() + + .. method:: proc dsiSupportsAlignedFollower() param + + .. method:: proc dsiSupportsPrivatization() param + + .. method:: proc dsiRequiresPrivatization() param + + .. method:: proc type isDefaultRectangular() param + + .. method:: proc isDefaultRectangular() param + + .. method:: proc doiCanBulkTransferRankChange() param + + .. method:: proc decEltCountsIfNeeded() + + .. method:: proc dsiIteratorYieldsLocalElements() param + +.. class:: AbsBaseArr : BaseArr + + This subclass is created to allow eltType to be defined in one place + instead of every subclass of BaseArr. It can't be put on BaseArr due to + BaseDom relying on BaseArr not being generic (it creates a list of BaseArrs + that it refers to and lists can't contain multiple instantiations of a + generic). + + + .. attribute:: type eltType + + .. method:: override proc decEltCountsIfNeeded() + +.. class:: BaseArrOverRectangularDom : BaseArr + + BaseArrOverRectangularDom has this signature so that dsiReallocate + can be overridden with the right tuple size. + + Note that eltType is not included here. eltType could be included + in a base class, but here we're looking for a way to narrow + overloaded functions to only those working with a particular + kind of bounding box. So if eltType is included, we should make + another base class. + + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc dsiReallocate( bounds: rank*range(idxType, boundKind.both, strides)) + + .. method:: override proc dsiPostReallocate() + + .. method:: proc deinit() + +.. class:: BaseRectangularArr : BaseArrOverRectangularDom(?) + + .. attribute:: type eltType + + rank, idxType, strides are from BaseArrOverRectangularDom + + .. method:: proc deinit() + + .. method:: override proc chpl_isElementTypeDefaultInitializable() : bool + + .. method:: override proc chpl_isElementTypeNonNilableClass() : bool + + .. method:: override proc chpl_unsafeAssignHaltUninitializedElement( idx) + + .. method:: override proc decEltCountsIfNeeded() + +.. class:: BaseSparseArr : AbsBaseArr(?) + + + * BaseSparseArr is very basic/generic so that we have some flexibility in + * implementing sparse array classes. + + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: var dom + + .. method:: override proc dsiGetBaseDom() + + : DefaultSparseDom(?); + + .. method:: proc deinit() + +.. class:: BaseSparseArrImpl : BaseSparseArr(?) + + + * All the common helpers/methods in implementations of internal sparse arrays + * go here. + + + .. attribute:: var data: [dom.nnzDom] eltType + + .. method:: proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool) + + .. method:: proc deinit() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. attribute:: var irv: eltType + + .. method:: proc IRV ref + + .. method:: override proc sparseBulkShiftArray( shiftMap, oldnnz) + + .. method:: override proc sparseShiftArray( shiftrange, initrange) + + .. method:: override proc sparseShiftArrayBack( shiftrange) + +.. function:: proc _delete_dist( dist: unmanaged(BaseDist), privatized: bool) + +.. function:: proc _delete_dom( dom, privatized: bool) + +.. function:: proc _delete_arr( arr: unmanaged(BaseArr), param privatized: bool, deinitElts = true) + +.. function:: proc chpl_assignDomainWithGetSetIndices( lhs: ?t, rhs: domain) where isSubtype(_to_borrowed(t), BaseRectangularDom) + +.. function:: proc chpl_assignDomainWithIndsIterSafeForRemoving( lhs: ?t, rhs: domain) where isSubtype(_to_borrowed(t), BaseSparseDom) || isSubtype(_to_borrowed(t), BaseAssociativeDom) + diff --git a/docs/internal/source/modules/internal/ChapelDomain.rst b/docs/internal/source/modules/internal/ChapelDomain.rst new file mode 100644 index 000000000..f11158470 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelDomain.rst @@ -0,0 +1,1267 @@ +.. default-domain:: chpl + +.. module:: ChapelDomain + :noindex: + +ChapelDomain +============ +**Usage** + +.. code-block:: chapel + + use ChapelDomain; + + +or + +.. code-block:: chapel + + import ChapelDomain; + +.. data:: config const defaultHashTableResizeThreshold = 0.5 + + + Fractional value that specifies how full this domain can be + before requesting additional memory. The default value of + 0.5 means that the map will not resize until the map is more + than 50% full. The acceptable values for this argument are + between 0 and 1, exclusive, meaning (0,1). A lower + `defaultHashTableResizeThreshold` value can potentially + improve indexing performance, since the table will likely + have fewer collisions, while a higher value can help save + memory. + Note that this value also impacts all of Chapel's hash-based + data structures, such as `set` and `map`. + + +.. data:: config param noNegativeStrideWarnings = false + + Compile with ``-snoNegativeStrideWarnings`` + to suppress the warning about arrays and slices with negative strides. + +.. function:: proc _getDomain( value) + +.. function:: proc tupleOfRangesSlice( base, slice) where chpl__isTupleOfRanges(base) && chpl__isTupleOfRanges(slice) + +.. function:: proc chpl__buildDomainRuntimeType( dist, param rank: int, type idxType = int, param strides: strideKind = strideKind.one) type + +.. function:: proc chpl__buildDomainRuntimeType( dist, type idxType, param parSafe: bool = assocParSafeDefault) type + +.. function:: proc chpl__buildSparseDomainRuntimeType( dist, parentDom: domain) type + +.. function:: proc chpl__buildSparseDomainRuntimeTypeForParentDomain( parentDom) type + +.. function:: proc chpl__buildSparseDomainRuntimeTypeForParentDomain(type parentDom) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, param rank: int, type idxType = int, param strides: strideKind, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, type idxType, param parSafe: bool, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertRuntimeTypeToValue( dist, parentDom: domain, param isNoInit: bool, definedConst: bool) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseRectangularDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseAssociativeDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type where isSubtype(dom._value.type, BaseSparseDom) + +.. function:: proc chpl__convertValueToRuntimeType( dom: domain) type + +.. function:: proc chpl__buildSubDomainType( dom: domain) type + +.. function:: proc chpl__isTupleOfRanges( tup) param + +.. function:: proc chpl__buildDomainExpr(ranges ..., definedConst) where chpl__isTupleOfRanges(ranges) + +.. function:: proc chpl__buildDomainExpr(const keys ..., definedConst) + +.. function:: proc chpl__ensureDomainExpr(const ref x: domain) const ref + +.. function:: proc chpl__ensureDomainExpr(x ...) + +.. function:: proc chpl__ensureDomainExpr(type t) + +.. function:: proc chpl__isRectangularDomType(type domainType) param + +.. function:: proc chpl__isSparseDomType(type domainType) param + +.. function:: proc chpl__parentDomainFromDomainRuntimeType(type domainType) + +.. function:: proc chpl__domainFromArrayRuntimeType(type rtt) + +.. function:: proc chpl_isAssociativeDomClass( dc: BaseAssociativeDom) param + +.. function:: proc chpl_isAssociativeDomClass( dc) param + +.. function:: proc chpl__checkDomainsMatch( a: [], b) + +.. function:: proc chpl__checkDomainsMatch( a: _iteratorRecord, b) + +.. function:: proc chpl_countDomHelp( dom, counts) + +.. function:: operator #( dom: domain, counts: integral) + +.. function:: operator #( dom: domain, counts: _tuple) + +.. function:: operator #( dom: domain, counts) + +.. function:: operator +( d: domain, i: ?t) where d.isRectangular() && noRDadds(t) + +.. function:: operator +( i: ?t, d: domain) where d.isRectangular() && noRDadds(t) + +.. function:: operator -( d: domain, i: ?t) where d.isRectangular() && noRDadds(t) + +.. function:: operator +(in d: domain, i: index(d)) where d.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +( i, in d: domain) where isSubtype(i.type, index(d)) && d.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +(in d1: domain, d2: domain) where d1.type == d2.type && d1.isIrregular() && d2.isIrregular() + + .. warning:: + + '+' on domains is unstable and may change in the future + +.. function:: operator +( d1: domain, d2: domain) + +.. function:: operator +=(ref D: domain, idx) + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator +=(ref D: domain, param idx) + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator -(in d: domain, i: index(d)) where d.isIrregular() + + .. warning:: + + '-' on domains is unstable and may change in the future + +.. function:: operator -(in d1: domain, d2: domain) where d1.type == d2.type && d1.isSparse() + +.. function:: operator -( d1: domain, d2: domain) + +.. function:: operator -=(ref D: domain, idx) + + .. warning:: + + '-=' on domains is unstable and may change in the future + +.. function:: operator -=(ref D: domain, param idx) + + .. warning:: + + '-=' on domains is unstable and may change in the future + +.. function:: operator ==( d1: domain, d2: domain) where d1.isRectangular() && d2.isRectangular() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isRectangular() && d2.isRectangular() + +.. function:: operator ==( d1: domain, d2: domain) where d1.isAssociative() && d2.isAssociative() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isAssociative() && d2.isAssociative() + +.. function:: operator ==( d1: domain, d2: domain) where d1.isSparse() && d2.isSparse() + +.. function:: operator !=( d1: domain, d2: domain) where d1.isSparse() && d2.isSparse() + +.. function:: operator ==( d1: domain, d2: domain) + +.. function:: operator !=( d1: domain, d2: domain) + +.. function:: proc chpl_sameDomainKind( d1: domain, d2: domain) param + +.. function:: operator -( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '-' on domains is unstable and may change in the future + +.. function:: operator -=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '-=' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, no error + occurs. + + +.. function:: operator |( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '|' on domains is unstable and may change in the future + +.. function:: operator |=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '|=' on domains is unstable and may change in the future + +.. function:: operator |=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator +=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '+=' on domains is unstable and may change in the future + +.. function:: operator &( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '&' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, no error + occurs. + + +.. function:: operator &=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '&=' on domains is unstable and may change in the future + +.. function:: operator &=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator ^( a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '^' on domains is unstable and may change in the future + +.. function:: operator ^=(ref a: domain, b: domain) where a.type == b.type && a.isAssociative() + + .. warning:: + + '^=' on domains is unstable and may change in the future + + + We remove elements in the RHS domain from those in the LHS domain only if + they exist. If an element in the RHS is not present in the LHS, it is + added to the LHS. + + +.. function:: operator ^=( a: domain, b: domain) where a.isRectangular() + +.. function:: operator +=(ref sd: domain, inds: [] index(sd)) where sd.isSparse() + +.. function:: operator +=(ref sd: domain, d: domain) where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType + +.. function:: operator -=(ref sd: domain, inds: [] index(sd)) where sd.isSparse() + +.. function:: operator -=(ref sd: domain, d: domain) where sd.isSparse() && d.rank == sd.rank && sd.idxType == d.idxType + +.. function:: operator = (ref a: domain, b: domain) + +.. function:: proc chpl__checkTupIrregDomAssign(const ref d, const ref idx, param msg) + +.. function:: proc chpl__isLegalRectTupDomAssign( d, t) param + +.. function:: operator = (ref a: domain, b: _tuple) + +.. function:: operator = (ref d: domain, r: range(?)) + +.. function:: operator = (ref a: domain, b) + +.. function:: operator by( a: domain, b) + +.. function:: operator by( a: domain, param b: integral) + +.. function:: operator align( a: domain, b) + +.. function:: proc chpl_domainDistIsLayout( d: domain) param + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: _domain, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: _tuple, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs: range(?), definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, rhs: _iteratorRecord, definedConst: bool) + +.. function:: proc chpl__coerceCopy(type dstType: _domain, rhs, definedConst: bool) + +.. function:: proc chpl__coerceMove(type dstType: _domain, in rhs, definedConst: bool) + +.. record:: _domain : writeSerializable, readDeserializable + + The domain type. + + .. attribute:: var _pid: int + + .. attribute:: var _instance + + .. attribute:: var _unowned: bool + + .. method:: proc chpl__promotionType() type + + .. method:: proc init( _pid: int, _instance, _unowned: bool) + + .. method:: proc init( value) + + .. method:: proc init( d, param rank: int, type idxType = int, param strides = strideKind.one, definedConst: bool = false) + + .. method:: proc init( d, param rank: int, type idxType = int, param strides = strideKind.one, ranges: rank*range(idxType, boundKind.both, strides), definedConst: bool = false) + + .. method:: proc init( d, type idxType, param parSafe: bool = true, definedConst: bool = false) + + .. method:: proc init( d, dom: domain, definedConst: bool = false) + + .. method:: proc init=(const ref other: domain) where other.isRectangular() + + .. method:: proc init=(const ref other: domain) + + .. method:: proc _value + + .. method:: proc chpl__serialize() where this._value.isDefaultRectangular() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc _do_destroy() + + .. method:: proc deinit() + + .. method:: proc distribution + + Returns the domain map that implements this domain. + + .. method:: proc dist + + Prevent users from accessing internal datatypes unintentionally. It + used to be a public method deprecated in favor of domain.distribution. + + .. method:: proc rank param + + Returns the number of dimensions in this domain. + + .. method:: proc idxType type + + Returns the type used to represent the indices of this domain. + For a multidimensional domain, this represents the + per-dimension index type. + + .. method:: proc fullIdxType type + + Returns the full type used to represent the indices of this + domain. For a 1D or associative domain, this is the same + as :proc:`idxType` above. For a multidimensional domain, it + is :proc:`rank` * :proc:`idxType`. + + .. method:: proc chpl_integralIdxType type + + .. method:: proc strides param where this.isRectangular() + + Returns the 'strides' parameter of the domain. + + .. method:: proc strides param where this.isSparse() + + .. method:: proc strides param where this.isAssociative() + + .. method:: proc hasUnitStride() param + + .. method:: proc hasPosNegUnitStride() param + + .. method:: proc stride + + Returns the stride of the indices in this domain. + + .. method:: proc stride param where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne() + + .. method:: proc alignment + + Returns the alignment of the indices in this domain. + + .. method:: proc alignment param where rank == 1 && (isRectangular() || isSparse()) && strides.isPosNegOne() + + .. method:: proc targetLocales() const ref + + Returns an array of locales over which this domain + has been distributed. + + .. itermethod:: iter these() + + Yield the domain indices + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone && __primitive("resolves", _value.these(tag = tag)) + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, param fast: bool = false) where tag == iterKind.follower + + .. method:: proc this( d: domain) + + .. method:: proc this(ranges ...rank) where chpl__isTupleOfRanges(ranges) + + .. method:: proc this(args ...rank) where _validRankChangeArgs(args, _value.idxType) + + .. method:: proc this(i: integral ...rank) + + .. method:: proc this(args ...?numArgs) + + .. method:: proc isEmpty() : bool + + Returns true if the domain has no indices. + + .. method:: proc size : int + + Returns the number of indices in this domain as an ``int``. + + .. method:: proc sizeAs(type t: integral) : t + + Returns the number of indices in this domain as the specified type. + + .. method:: proc dims() + + + Returns a tuple of ranges describing the bounds of a rectangular domain. + For a sparse domain, returns the bounds of the parent domain. + + + .. method:: proc dim( d: int) + + + Returns a range representing the boundary of this + domain in a particular dimension. + + + .. method:: proc dim(param d: int) + + .. itermethod:: iter dimIter(param d, ind) + + .. method:: proc shape : rank*int where this.isRectangular() || this.isSparse() + + Returns a tuple of ``int`` values representing the size of each + dimension. + + For a sparse domain, this returns the shape of the parent domain. + + + .. method:: proc chpl_shapeAs(type t: integral) + + .. method:: proc shape where this.isAssociative() + + Associative domains assumed to be 1-D. + + .. method:: proc shape + + Unsupported case + + .. method:: proc indices + + This error overload is here because without it, the domain's + indices tend to be promoted across the `.indices` calls of + their idxType which can be very confusing. + + .. method:: proc boundingBox() where this.isRectangular() + + .. method:: proc low + + Returns the lowest index represented by a rectangular domain. + + .. method:: proc low where this.isAssociative() + + .. method:: proc high + + Returns the highest index represented by a rectangular domain. + + .. method:: proc high where this.isAssociative() + + .. method:: proc lowBound + + Returns the domain's 'pure' low bound. For example, given the + domain ``{1..10 by -2}``, ``.lowBound`` would return 1, whereas + ``.low`` would return 2 since it's the lowest index represented + by the domain. This routine is only supported on rectangular + domains. + + .. method:: proc highBound + + Returns the domain's 'pure' high bound. For example, given the + domain ``{1..10 by 2}``, ``.highBound`` would return 10, + whereas ``.high`` would return 9 since it's the highest index + represented by the domain. This routine is only supported on + rectangular domains. + + .. method:: proc first + + Returns the first index in this domain. + + .. method:: proc last + + Returns the last index in this domain. + + .. method:: proc chpl_checkEltType(type eltType) + + .. method:: proc chpl_checkNegativeStride() + + .. method:: proc buildArray(type eltType, param initElts: bool) + + .. method:: proc tryCreateArray(type eltType) throws + + .. warning:: + + tryCreateArray() is subject to change in the future. + + + Invoking this method will attempt to create and return an array + declared over the domain instance. If there is not enough memory + to satisfy the allocation, an error will be thrown, allowing + the program to continue if handled, as opposed to halting and + thus stopping program execution. + + This method will be most reliable in configurations that use a + fixed heap (e.g., when using ``CHPL_GASNET_SEGMENT=large``), but + can be called in all configurations. In the case of a dynamic + heap, it is possible that overcommit will cause the array + allocation to succeed, even if there is not enough physical + memory to satisfy the allocation, which will then fail with a bus + error when attempting to access the array. + + This method can be called on all domains that implement a + 'doiTryCreateArray' method. + + Throws an `ArrayOomError` when out of memory allocating elements. + + + .. method:: proc tryCreateArray(type eltType, initExpr: ?t) throws where isSubtype(t, _iteratorRecord) || isCoercible(t, eltType) + + .. warning:: + + tryCreateArray() is subject to change in the future. + + .. method:: proc tryCreateArray(type eltType, initExpr: [?dom] ?arrayEltType) throws where this.rank == dom.rank && isCoercible(arrayEltType, eltType) + + .. warning:: + + tryCreateArray() is subject to change in the future. + + .. method:: proc buildArrayWith(type eltType, data: _ddata(eltType), allocSize: int) + + .. record:: unsafeAssignManager : contextManager + + + An instance of this type is a context manager that can be used in + manage statements to resize arrays of non-default-initializable + element types after resizing their underlying domain. + + Using an instance of this type in a manage statement will cause a + domain assignment to occur before executing the statement body. The + left-hand-side of the assignment is the receiver domain that had + ``unsafeAssign()`` called on it, while the right-hand-side is the + `dom` formal of the same call. + + If the assignment adds new indices to the assigned domain, then + corresponding elements are added to arrays declared over it. + If an array's element type is non-default-initializable, then any + newly added elements remain uninitialized. + + The ``initialize()`` method can be used within the manage statement + body to initialize new elements of non-default-initializable arrays + declared over the assigned domain. + + The new elements of default-initializable arrays over the assigned + domain will be default-initialized. They can be set to desired + values as usual, for example using an assignment operator. + + + .. attribute:: var _lhsInstance + + .. attribute:: var _lhsPid: int + + .. attribute:: var _rhsInstance + + .. attribute:: var _rhsPid: int + + .. attribute:: var _oldLhsDomainCopy: domain(?) + + .. attribute:: param _checks: bool + + .. attribute:: var _isActiveManager: bool + + .. itermethod:: iter _arraysOverLhsDom() + + .. method:: proc postinit() + + .. method:: proc checks param + + + Returns ``true`` if this manager has runtime safety checks enabled. + + + .. method:: proc type isClassReferenceNil(const ref x) + + .. method:: proc isClassReferenceNil(const ref x) + + .. method:: proc _checkThatArrayShapeIsSupported( arr) param + + .. method:: proc _checkThatIndexMatchesArrayShape( arr, idx) param + + .. method:: proc _isBaseArrClassElementNil( baseArr: BaseArr, idx) + + .. method:: proc isElementInitialized( arr: [?d], idx) + + + Returns ``true`` if the value at a given index in an array has + been initialized. + + + .. method:: proc _checkIfAllElementsAreInitialized( baseArr) + + .. method:: proc ref _ensureNoLongerManagingThis() + + .. method:: proc ref deinit() + + .. method:: proc _isArrayOwnedByLhsDomain( arr) + + .. method:: proc _moveInitializeElement(ref arr, idx, in value) + + .. method:: proc _checkNoChecksWhenNonDefaultInitializableEltType( arr) + + .. method:: proc initialize(ref arr: [?d], idx, in value: arr.eltType) + + + Initializes a newly added array element at an index with a new value. + + If `checks` is ``true`` and the array element at `idx` has already + been initialized, this method will halt. If `checks` is ``false``, + then calling this method on an already initialized element will + result in undefined behavior. + + It is an error if `idx` is not a valid index in `arr`. + + + .. method:: proc ref enterContext() ref + + .. method:: proc ref exitContext(in err: owned(Error?)) throws + + .. itermethod:: iter newIndices() + + + Iterates over any new indices that will be added to this domain as a + result of unsafe assignment. + + + .. method:: proc ref unsafeAssign(const ref dom: domain, param checks: bool = false) + + + Returns an instance of :type:`unsafeAssignManager`. + + The returned context manager can be used in a manage statement to + assign the indices of `dom` into the receiver domain. Within the body + of the manage statement, the manager can initialize elements of + non-default-initializable arrays declared over the receiver domain. + + If `checks` is ``true``, this method will guarantee that: + + - Newly added elements of any non-default-initializable arrays + declared over the receiver domain have been initialized by the + end of the manage statement + - Newly added elements are only initialized once + + These guarantees hold only for initialization done through calls to + the ``initialize()`` method on the context manager. Performing + any other operation on a newly added array element causes undefined + behavior until after ``initialize()`` has been called. + + For example: + + .. code-block:: chapel + + var D = {0..0}; + var A: [D] shared C = [new shared C(0)]; + manage D.unsafeAssign({0..1}, checks=true) as mgr { + // 'D' has a new index '1', so 'A' has a new element at '1', + // which we need to initialize: + mgr.initialize(A, 1, new shared C(1)); + } + + .. note:: + + Checks are not currently supported for arrays of + non-default-initializable element types other than arrays of + non-nilable classes. + + :arg dom: The domain to assign to the receiver + :arg checks: If this manager should provide runtime safety checks + + :returns: A :type:`unsafeAssignManager` for use in manage statements + + + .. method:: proc ref clear() where this.isRectangular() + + Removes all indices from this domain, leaving it empty. + + .. method:: proc ref clear() + + Removes all indices from this domain, leaving it empty. + + .. method:: proc ref remove( idx) + + Removes index ``idx`` from this domain. + + .. method:: proc ref add(in idx) + + Adds index ``idx`` to this domain. This method is also available + as the ``+=`` operator. + Returns the number of indices that were added. + + The domain must be irregular. + + + .. method:: proc ref bulkAdd( inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank == 1 + + .. warning:: + + bulkAdd() is subject to change in the future. + + .. method:: proc ref bulkAddNoPreserveInds(ref inds: [] _value.idxType, dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank == 1 + + .. warning:: + + bulkAddNoPreserveInds() is subject to change in the future. + + .. method:: proc createIndexBuffer( size: int) + + .. warning:: + + createIndexBuffer() is subject to change in the future. + + + Creates an index buffer which can be used for faster index addition. + + For example, instead of: + + .. code-block:: chapel + + var spsDom: sparse subdomain(parentDom); + for i in someIndexIterator() do + spsDom += i; + + You can use `SparseIndexBuffer` for better performance: + + .. code-block:: chapel + + var spsDom: sparse subdomain(parentDom); + var idxBuf = spsDom.createIndexBuffer(size=N); + for i in someIndexIterator() do + idxBuf.add(i); + idxBuf.commit(); + + The above snippet will create a buffer of size N indices, and will + automatically commit indices to the sparse domain as the buffer fills up. + Indices are also committed when the buffer goes out of scope. + + :arg size: Size of the buffer in number of indices. + :type size: int + + + .. method:: proc ref bulkAdd( inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank > 1 + + .. warning:: + + bulkAdd() is subject to change in the future. + + + Adds indices in ``inds`` to this domain in bulk. + + For sparse domains, an operation equivalent to this method is available + with the ``+=`` operator, where the right-hand-side is an array. However, + in that case, default values will be used for the flags ``dataSorted`` and + ``isUnique``. This method is available because in + some cases, expensive operations can be avoided by setting those flags. + To do so, ``bulkAdd`` must be called explicitly (instead of ``+=``). + + .. note:: + + Right now, this method and the corresponding ``+=`` operator are + only available for sparse domains. In the future, we expect that + these methods will be available for all irregular domains. + + .. note:: + + ``nilLocale`` is a sentinel value to denote that the locale where this + addition should occur is unknown. We expect this to change in the + future. + + .. note:: + + This method may make a copy of ``inds`` if the data is not sorted to + preserve the indices used. If the data is already sorted, it is + possible to avoid this extra copy by using :proc:`bulkAddNoPreserveInds`, + which does not copy the indices and may modify ``inds`` in place. + + :arg inds: Indices to be added. ``inds`` must be an array of + ``rank*idxType``, except for 1-D domains, where it must be + an array of ``idxType``. + + :arg dataSorted: ``true`` if data in ``inds`` is sorted. + :type dataSorted: bool + + :arg isUnique: ``true`` if data in ``inds`` has no duplicates. + :type isUnique: bool + + :arg addOn: The locale where the indices should be added. Default value + is ``nil`` which indicates that locale is unknown or there + are more than one. + :type addOn: locale + + :returns: Number of indices added to the domain + :rtype: int + + + .. method:: proc ref bulkAddNoPreserveInds(ref inds: [] (_value.rank*_value.idxType), dataSorted = false, isUnique = false, addOn = nilLocale) where this.isSparse() && _value.rank > 1 + + .. warning:: + + bulkAddNoPreserveInds() is subject to change in the future. + + + Adds indices in ``inds`` to this domain in bulk. + + This is nearly identical to :proc:`bulkAdd`. :proc:`bulkAdd` may + make a copy of ``inds`` if the data is unsorted, whereas this method will + modify ``inds`` in place. + + .. note:: + + Right now, this method is only available for sparse domains. + In the future, we expect that this method will be available for all + irregular domains. + + .. note:: + + ``nilLocale`` is a sentinel value to denote that the locale where this + addition should occur is unknown. We expect this to change in the + future. + + :arg inds: Indices to be added. ``inds`` must be an array of + ``rank*idxType``, except for 1-D domains, where it must be + an array of ``idxType``. + + :arg dataSorted: ``true`` if data in ``inds`` is sorted. + :type dataSorted: bool + + :arg isUnique: ``true`` if data in ``inds`` has no duplicates. + :type isUnique: bool + + :arg addOn: The locale where the indices should be added. Default value + is ``nil`` which indicates that locale is unknown or there + are more than one. + :type addOn: locale + + :returns: Number of indices added to the domain + :rtype: int + + + .. method:: proc bulkAdd(args ...) + + .. method:: proc bulkAddNoPreserveInds(args ...) + + .. method:: proc ref requestCapacity( capacity) + + Requests space for a particular number of values in an + domain. + + Currently only applies to associative domains. + + + .. method:: proc contains(const idx: rank*_value.idxType) + + .. method:: proc contains(const idx: _value.idxType ...rank) + + Returns true if this domain contains ``idx``. Otherwise returns false. + For sparse domains, only indices with a value are considered + to be contained in the domain. + + + .. method:: proc contains( other: domain) + + Returns true if this domain contains all the indices in the domain + ``other``. + + .. method:: proc indexOrder( i) + + .. method:: proc orderToIndex( order: int) where this.isRectangular() && isNumericType(this.idxType) + + .. warning:: + + domain.orderToIndex() is unstable and its behavior may change in the future + + + Returns the `ith` index in the domain counting from 0. + For example, ``{2..10 by 2}.orderToIndex(2)`` would return ``6``. + + The order of a multidimensional domain follows its serial iterator. + For example, ``{1..3, 1..2}.orderToIndex(3)`` would return ``(2, 2)``. + + .. note:: + + Right now, this method supports only dense rectangular domains with + numeric indices + + :arg order: Order for which the corresponding index in the domain + has to be found. + + :returns: Domain index for a given order in the domain. + + + .. method:: proc orderToIndex( order) + + .. method:: proc checkOrderBounds( order: int) + + .. method:: proc position( i) + + .. method:: proc expand( off: rank*integral) where !this.isRectangular() + + .. method:: proc expand(off: integral ...rank) + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + .. method:: proc expand( off: rank*integral) + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain expanded by + ``off(d)`` in dimension ``d`` if ``off(d)`` is positive or + contracted by ``off(d)`` in dimension ``d`` if ``off(d)`` + is negative. + + See :proc:`ChapelRange.range.expand` for further information about what + it means to expand a range. + + + + .. method:: proc expand( off: integral) where rank > 1 + + .. warning:: + + domain.expand() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain expanded by + ``off`` in all dimensions if ``off`` is positive or contracted + by ``off`` in all dimensions if ``off`` is negative. + + See :proc:`ChapelRange.range.expand` for further information about what + it means to expand a range. + + + .. method:: proc exterior( off: rank*integral) where !this.isRectangular() + + .. method:: proc exterior(off: integral ...rank) + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + .. method:: proc exterior( off: rank*integral) + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + Returns a new domain that is the exterior portion of the + current domain with ``off(d)`` indices for each dimension ``d``. + If ``off(d)`` is negative, compute the exterior from the low + bound of the dimension; if positive, compute the exterior + from the high bound. + + See :proc:`ChapelRange.range.exterior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc exterior( off: integral) where rank != 1 + + .. warning:: + + domain.exterior() is unstable and its behavior may change in the future + + Returns a new domain that is the exterior portion of the + current domain with ``off`` indices for each dimension. + If ``off`` is negative, compute the exterior from the low + bound of the dimension; if positive, compute the exterior + from the high bound. + + See :proc:`ChapelRange.range.exterior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc interior( off: rank*integral) where !this.isRectangular() + + .. method:: proc interior(off: integral ...rank) + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + .. method:: proc interior( off: rank*integral) + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + Returns a new domain that is the interior portion of the + current domain with ``off(d)`` indices for each dimension + ``d``. If ``off(d)`` is negative, compute the interior from + the low bound of the dimension; if positive, compute the + interior from the high bound. + + See :proc:`ChapelRange.range.interior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc interior( off: integral) where rank != 1 + + .. warning:: + + domain.interior() is unstable and its behavior may change in the future + + Returns a new domain that is the interior portion of the + current domain with ``off`` indices for each dimension. + If ``off`` is negative, compute the interior from the low + bound of the dimension; if positive, compute the interior + from the high bound. + + See :proc:`ChapelRange.range.interior` for further information about what + it means to compute the exterior of a range. + + + + .. method:: proc translate( off: rank*integral) where !this.isRectangular() + + .. method:: proc translate(off: integral ...rank) + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + .. method:: proc translate( off: rank*integral) + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain translated by + ``off(d)`` in each dimension ``d``. + + See :proc:`ChapelRange.range.translate` for further information about + what it means to translate a range. + + + + .. method:: proc translate( off: integral) where rank != 1 + + .. warning:: + + domain.translate() is unstable and its behavior may change in the future + + Returns a new domain that is the current domain translated by + ``off`` in each dimension. + + See :proc:`ChapelRange.range.translate()` for further information about + what it means to translate a range. + + + + .. method:: proc chpl__unTranslate(off: integral ...rank) + + .. method:: proc chpl__unTranslate( off: rank*chpl_integralIdxType) + + .. method:: proc ref setIndices( x) + + .. method:: proc getIndices() + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc ref deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && _value.isDefaultRectangular() + + .. method:: proc localSlice(r ...rank) where chpl__isTupleOfRanges(r) && !_value.isDefaultRectangular() + + + Returns a local view of the sub-domain (slice) defined by the provided + range(s), halting if the slice contains elements that are not local. + + + .. method:: proc localSlice( d: domain) + + + Returns a local view of the sub-domain (slice) defined by the provided + domain, halting if the slice contains elements that are not local. + + + .. itermethod:: iter sorted( comparator: ?t = chpl_defaultComparator()) + + Yields the domain indices in sorted order. + + .. method:: proc displayRepresentation() + + .. method:: proc defaultSparseDist + + .. method:: proc hasSingleLocalSubdomain() param + + .. warning:: + + 'hasSingleLocalSubdomain' on domains is unstable and may change in the future + + Returns true if the local subdomain can be represented as a single + domain. Otherwise returns false. + + .. method:: proc localSubdomain( loc: locale = here) + + + Returns the subdomain that is local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. itermethod:: iter localSubdomains( loc: locale = here) + + .. warning:: + + 'localSubdomains' on domains is unstable and may change in the future + + + Yields the subdomains that are local to `loc`. + + :arg loc: indicates the locale for which the query should take + place (defaults to `here`) + :type loc: locale + + + .. method:: proc supportsAutoLocalAccess() param + + .. method:: proc supportsOffsetAutoLocalAccess() param + + .. method:: proc autoLocalAccessOffsetCheck( offsets) + + .. method:: proc iteratorYieldsLocalElements() param + + .. method:: proc tryCast(type t: domain) where chpl__isRectangularDomType(t) && this.isRectangular() && this.chpl_domainTryCastIsSafe(t) + + Casts a rectangular domain to a new rectangular domain type. + Throws an IllegalArgumentError when the original bounds and/or stride(s) + do not fit in the new idxType or when the original stride(s) + are not legal for the new `strides` parameter. + + + .. method:: proc tryCast(type t: domain) throws + + .. method:: proc chpl_domainTryCastHelper(type t: _domain) throws + + .. method:: proc chpl_domainTryCastIsSafe(type t: domain) param + + .. method:: operator :( d: _domain, type t: _domain) where chpl__isRectangularDomType(t) && d.isRectangular() && d.chpl_domainCastIsSafe(t) + + Casts a rectangular domain to a new rectangular domain type. + The overload below throws when the original bounds and/or stride + do not fit in the new type or 'strides'. + TODO: should we allow 't' to be generic? + + + .. method:: operator :( d: _domain, type t: domain) throws + + .. method:: proc chpl_domainCastHelper(type t: _domain) throws + + .. method:: proc chpl_domainCastIsSafe(type t: domain) param + + .. method:: operator :( val: _domain, type t: string) + + .. method:: proc isRectangular() param + + Returns true if this domain is a rectangular. + Otherwise returns false. + + .. method:: proc isIrregular() param + + Returns true if ``d`` is an irregular domain; e.g. is not rectangular. + Otherwise returns false. + + .. method:: proc isAssociative() param + + Returns true if ``d`` is an associative domain. + Otherwise returns false. + + .. method:: proc isSparse() param + + Returns true if ``d`` is a sparse domain. Otherwise returns false. + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where chpl_isValidRangeIdxType(t1) && chpl_isValidRangeIdxType(t2) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a rectangular domain with bounds defined by the scalar values `low` + and `high`. If `inclusive` is true, the domain includes the `high` value. + Otherwise, the domain excludes the `high` value. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) && isTuple(high) && isHomogeneousTuple(low) && isHomogeneousTuple(high) && low.size == high.size && (isCoercible(low(0).type, high(0).type) || isCoercible(high(0).type, low(0).type)) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a multidimensional rectangular domain with bounds defined by the + pairwise elements of `low` and `high`. If `inclusive` is true, the domain + includes the `high` values. Otherwise, the domain excludes the `high` + values. For example, `makeRectangularDomain((1, 2), (10,11))` is + equivalent to `{1..10, 2..11}`. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) != isTuple(high) + + .. warning:: + + makeRectangularDomain() is subject to change in the future. + + Creates a rectangular domain with bounds defined by one tuple and one + scalar value. The scalar argument is used in each dimension of the domain, + while the 'n'-th tuple element is used to define the 'n'-th dimension of + the domain. If `inclusive` is true, the domain includes the `high` value. + Otherwise, the domain excludes the `high` value. For example, + `makeRectangularDomain((1, 2), 10)` is equivalent to `{1..10, 2..10}` + and `makeRectangularDomain(1, (10, 11), inclusive=false)` is equivalent + to `{1..<10, 1..<11}`. + + +.. function:: proc makeRectangularDomain( low: ?t1, high: ?t2, param inclusive: bool = true) where isTuple(low) && isTuple(high) + diff --git a/docs/internal/source/modules/internal/ChapelGpuSupport.rst b/docs/internal/source/modules/internal/ChapelGpuSupport.rst new file mode 100644 index 000000000..d956c1390 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelGpuSupport.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelGpuSupport + :noindex: + +ChapelGpuSupport +================ +**Usage** + +.. code-block:: chapel + + use ChapelGpuSupport; + + +or + +.. code-block:: chapel + + import ChapelGpuSupport; + diff --git a/docs/internal/source/modules/internal/ChapelHashing.rst b/docs/internal/source/modules/internal/ChapelHashing.rst new file mode 100644 index 000000000..a88125734 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelHashing.rst @@ -0,0 +1,54 @@ +.. default-domain:: chpl + +.. module:: ChapelHashing + :noindex: + +ChapelHashing +============= +**Usage** + +.. code-block:: chapel + + use ChapelHashing; + + +or + +.. code-block:: chapel + + import ChapelHashing; + +.. function:: proc chpl__defaultHashWrapperInner( x) : uint + +.. function:: proc chpl__defaultHashWrapper( x) : int + +.. function:: proc _gen_key( i: uint) : uint + +.. function:: proc _gen_key( i: int) : uint + +.. function:: proc chpl__defaultHashCombine( a: uint, b: uint, fieldnum: int) : uint + +.. method:: proc bool.hash() : uint + +.. method:: proc int.hash() : uint + +.. method:: proc uint.hash() : uint + +.. method:: proc enum.hash() : uint + +.. method:: proc real.hash() : uint + +.. method:: proc complex.hash() : uint + +.. method:: proc imag.hash() : uint + +.. method:: proc chpl_taskID_t.hash() : uint + +.. method:: proc _array.hash() : uint + +.. method:: proc (borrowed(RootClass?)).hash() : uint + +.. method:: proc locale.hash() : uint + +.. method:: proc range.hash() : uint + diff --git a/docs/internal/source/modules/internal/ChapelHashtable.rst b/docs/internal/source/modules/internal/ChapelHashtable.rst new file mode 100644 index 000000000..cf90df433 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelHashtable.rst @@ -0,0 +1,116 @@ +.. default-domain:: chpl + +.. module:: ChapelHashtable + :noindex: + +ChapelHashtable +=============== +**Usage** + +.. code-block:: chapel + + use ChapelHashtable; + + +or + +.. code-block:: chapel + + import ChapelHashtable; + +.. enum:: enum chpl__hash_status { empty = 0, full, deleted } + + .. enumconstant:: enum constant empty = 0 + + .. enumconstant:: enum constant full + + .. enumconstant:: enum constant deleted + +.. record:: chpl_TableEntry + + .. attribute:: var status: chpl__hash_status = chpl__hash_status.empty + + .. attribute:: var key + + .. attribute:: var val + + .. method:: proc isFull() + +.. iterfunction:: iter _allSlots( size: int) + +.. class:: chpl__rehashHelpers + + .. method:: proc startRehash( newSize: int) + + .. method:: proc moveElementDuringRehash( oldSlot: int, newSlot: int) + + .. method:: proc finishRehash( oldSize: int) + +.. record:: chpl__hashtable + + .. attribute:: type keyType + + .. attribute:: type valType + + .. attribute:: var tableNumFullSlots: int + + .. attribute:: var tableNumDeletedSlots: int + + .. attribute:: var tableSize: int + + .. attribute:: var table: _ddata(chpl_TableEntry(keyType, valType)) + + .. attribute:: var rehashHelpers: owned(chpl__rehashHelpers?) + + .. attribute:: var postponeResize: bool + + .. attribute:: const resizeThreshold: real + + .. attribute:: const startingSize: int + + .. method:: proc init(type keyType, type valType, resizeThreshold = defaultHashTableResizeThreshold, initialCapacity = 16, in rehashHelpers: owned(chpl__rehashHelpers?) = nil) + + .. method:: proc deinit() + + .. method:: proc isSlotFull( slot: int) : bool + + .. itermethod:: iter allSlots() + + .. itermethod:: iter allSlots(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter allSlots(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter allSlots( followThis, param tag: iterKind) where tag == iterKind.follower + + .. method:: proc keysMatch( key1: ?t, key2: t) + + .. method:: proc _findSlot( key: keyType) : (bool, int) + + .. itermethod:: iter _lookForSlots( key: keyType, numSlots = tableSize) + + .. method:: proc ref findAvailableSlot( key: keyType) : (bool, int) + + .. method:: proc ref fillSlot(ref tableEntry: chpl_TableEntry(keyType, valType), in key: keyType, in val: valType) + + .. method:: proc ref fillSlot( slotNum: int, in key: keyType, in val: valType) + + .. method:: proc findFullSlot( key: keyType) : (bool, int) + + .. method:: proc ref clearSlot(ref tableEntry: chpl_TableEntry(keyType, valType), out key: keyType, out val: valType) + + .. method:: proc ref clearSlot( slotNum: int, out key: keyType, out val: valType) + + .. method:: proc ref maybeShrinkAfterRemove() + + .. method:: proc _findPowerOf2( numKeys: int) + + .. method:: proc allocateData( size: int, type tableEltType) + + .. method:: proc allocateTable( size: int) + + .. method:: proc ref rehash( newSize: int) + + .. method:: proc ref requestCapacity( numKeys: int) + + .. method:: proc ref resize( grow: bool) + diff --git a/docs/internal/source/modules/internal/ChapelIOSerialize.rst b/docs/internal/source/modules/internal/ChapelIOSerialize.rst new file mode 100644 index 000000000..1fa3602f3 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelIOSerialize.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelIOSerialize + :noindex: + +ChapelIOSerialize +================= +**Usage** + +.. code-block:: chapel + + use ChapelIOSerialize; + + +or + +.. code-block:: chapel + + import ChapelIOSerialize; + diff --git a/docs/internal/source/modules/internal/ChapelIOStringifyHelper.rst b/docs/internal/source/modules/internal/ChapelIOStringifyHelper.rst new file mode 100644 index 000000000..af0418495 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelIOStringifyHelper.rst @@ -0,0 +1,27 @@ +.. default-domain:: chpl + +.. module:: ChapelIOStringifyHelper + :noindex: + +ChapelIOStringifyHelper +======================= +**Usage** + +.. code-block:: chapel + + use ChapelIOStringifyHelper; + + +or + +.. code-block:: chapel + + import ChapelIOStringifyHelper; + +Pull out the portions of stringify that don't rely on IO so that they can +be called without IO and not cause circular dependencies. + +.. function:: proc _can_stringify_direct( t) param: bool + +.. function:: proc stringify_simple(const args ...?k) : string + diff --git a/docs/internal/source/modules/internal/ChapelIteratorSupport.rst b/docs/internal/source/modules/internal/ChapelIteratorSupport.rst new file mode 100644 index 000000000..82c478f52 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelIteratorSupport.rst @@ -0,0 +1,173 @@ +.. default-domain:: chpl + +.. module:: ChapelIteratorSupport + :noindex: + +ChapelIteratorSupport +===================== +**Usage** + +.. code-block:: chapel + + use ChapelIteratorSupport; + + +or + +.. code-block:: chapel + + import ChapelIteratorSupport; + + +Data parallel constructs (such as ``forall`` loops) are implicitly +vectorizable. If the ``--vectorize`` compiler flag is thrown the Chapel +compiler will emit vectorization hints to the backend compiler, though the +effects will vary based on the target compiler. + +In order to allow users to explicitly request vectorization, this prototype +vectorizing iterator is being provided. Loops that invoke this iterator will +be marked with vectorization hints, provided the ``--vectorize`` flag is +thrown. + +This iterator is currently available for all Chapel programs and does not +require a ``use`` statement to make it available. In future releases it will +be moved to a standard module and will likely require a ``use`` statement to +make it available. + + +.. function:: proc iteratorIndex( ic: _iteratorClass) + +.. function:: proc iteratorIndex( t: _tuple) + +.. function:: proc iteratorIndexType( x) type + +.. function:: proc iteratorIndexTypeZip(xs ...) type + +.. function:: proc iteratorToArrayElementType(type t: _iteratorRecord) type + +.. function:: proc thunkToReturnType(type t: _thunkRecord) type + +.. function:: proc chpl_elemTypeForReducingIterables( x) type + +.. function:: proc chpl_buildStandInRTT(type domType: domain) type + +.. function:: proc chpl_buildStandInRTT(type arrType: []) type + +.. function:: proc chpl_buildStandInRTT(type irType: _iteratorRecord) type + +.. function:: proc chpl_buildStandInRTT(type nonRTtype) type + +.. function:: proc chpl_buildStandInRTT( domInst) type where isSubtype(domInst.type, unmanaged(DefaultRectangularDom)) + +.. function:: proc chpl_buildStandInRTT( domInst) type + +.. iterfunction:: iter chpl_trivialLeader() + +.. function:: proc chpl_computeIteratorShape( arg: []) + +.. function:: proc chpl_computeIteratorShape( arg: domain) + +.. function:: proc chpl_computeIteratorShape( arg: range(?)) + +.. function:: proc chpl_computeIteratorShape( arg: _iteratorRecord) + +.. function:: proc chpl_computeIteratorShape( arg) + +.. function:: proc chpl_iteratorHasShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorHasDomainShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorHasRangeShape( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorShapeStaticTypeOrNothing(type ir: _iteratorRecord) type + +.. function:: proc chpl_iteratorFromForExpr( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorFromForExpr( arg) param + +.. function:: proc chpl_iteratorFromForeachExpr( ir: _iteratorRecord) param + +.. function:: proc chpl_iteratorFromForeachExpr( arg) param + +.. function:: operator = (ref ic: _iteratorRecord, xs) + +.. function:: operator = (ref ic: _iteratorRecord, x: iteratorIndexType(ic)) + +.. function:: proc _getIterator(const ref x) + +.. function:: proc _getIterator(type t) + +.. function:: proc _getIteratorZip( x) + +.. function:: proc _getIteratorZip(type t) + +.. function:: proc _getIteratorZip( x: _tuple) + +.. function:: proc _getIteratorZip(type t: _tuple) + +.. function:: proc _freeIterator( ic: _iteratorClass) + +.. function:: proc _freeIterator( x: _tuple) + +.. function:: proc _toLeader(const ir: _iteratorRecord) where __primitive("has leader", ir) + +.. function:: proc _toLeader(const x) where !isSubtype(x.type, _iteratorRecord) && __primitive("has leader", x.these()) + +.. function:: proc _toLeaderZip( x) where !isTuple(x) && Reflection.canResolve("_toLeader", x) + +.. function:: proc _toLeaderZip( x: _tuple) where Reflection.canResolve("_toLeader", x(0)) + +.. function:: proc _toStandalone( iterator: _iteratorClass) + +.. function:: proc _toStandalone( ir: _iteratorRecord) + +.. function:: proc _toStandalone( x) + +.. function:: proc _toLeader( ir: _iteratorRecord, args ...) + +.. function:: proc _toLeader( x, args ...) + +.. function:: proc _toLeaderZip( x, args ...) + +.. function:: proc _toLeaderZip( x: _tuple, args ...) + +.. function:: proc _toStandalone( iterator: _iteratorClass, args ...) + +.. function:: proc _toStandalone( ir: _iteratorRecord, args ...) + +.. function:: proc _toStandalone( x, args ...) + +.. function:: proc chpl__canHaveFastFollowers( x) param + +.. function:: proc chpl__canLeadFastFollowers( x) param + +.. function:: proc chpl__staticFastFollowCheck( x) param + +.. function:: proc chpl__staticFastFollowCheck( x, lead) param + +.. function:: proc chpl__dynamicFastFollowCheck( x) + +.. function:: proc chpl__dynamicFastFollowCheck( x, lead) + +.. function:: proc _toFollower( iterator: _iteratorClass, leaderIndex) + +.. function:: proc _toFollower( ir: _iteratorRecord, leaderIndex) + +.. function:: proc _toFollower(const ref x, leaderIndex) + +.. function:: proc _toFollowerZip( x, leaderIndex) + +.. function:: proc _toFollowerZip( x: _tuple, leaderIndex) + +.. function:: proc _toFollowerZipInternal( x: _tuple, leaderIndex, param dim: int) + +.. function:: proc _toFastFollower( iterator: _iteratorClass, leaderIndex, fast: bool) + +.. function:: proc _toFastFollower( ir: _iteratorRecord, leaderIndex, fast: bool) + +.. function:: proc _toFastFollower( x, leaderIndex) + +.. function:: proc singleValIter( iterables: _tuple) param + +.. function:: proc singleRefIter( iterables: _tuple) param + diff --git a/docs/internal/source/modules/internal/ChapelLocale.rst b/docs/internal/source/modules/internal/ChapelLocale.rst new file mode 100644 index 000000000..6ab94f98d --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelLocale.rst @@ -0,0 +1,351 @@ +.. default-domain:: chpl + +.. module:: ChapelLocale + :noindex: + +ChapelLocale +============ +**Usage** + +.. code-block:: chapel + + use ChapelLocale; + + +or + +.. code-block:: chapel + + import ChapelLocale; + + + + + +.. type:: type chpl_nodeID_t = int(32) + +.. type:: type chpl_sublocID_t = int(32) + +.. data:: const c_sublocid_none: chpl_sublocID_t + +.. data:: const c_sublocid_any: chpl_sublocID_t + +.. data:: const c_sublocid_all: chpl_sublocID_t + +.. function:: proc chpl_isActualSublocID( subloc: chpl_sublocID_t) + +.. enum:: enum localeKind { regular, any, nilLocale, dummy, default } + + + regular: Has a concrete BaseLocale instance + any: Placeholder to represent the notion of "anywhere" + nilLocale: The _instance is set to nil. Used during setup. Also, as a + sentinel value in locale tree operations + dummy: Used during initialization for `here` before it is properly setup + default: Used to store the default locale instance. Initially set to nil, + then "fixed" by LocalesArray to Locales[0] + + + .. enumconstant:: enum constant regular + + .. enumconstant:: enum constant any + + .. enumconstant:: enum constant nilLocale + + .. enumconstant:: enum constant dummy + + .. enumconstant:: enum constant default + +.. data:: const nilLocale = new locale(localeKind.nilLocale) + +.. data:: var defaultLocale = new locale(localeKind.default) + +.. data:: var dummyLocale = new locale(localeKind.dummy) + +.. record:: _locale + + .. attribute:: var _instance: unmanaged(BaseLocale?) + + .. method:: proc _value + + .. method:: proc init() + + .. method:: proc init( _instance: BaseLocale) + + .. method:: proc init(param kind) + + .. method:: proc init=( other: locale) + + .. method:: proc deinit() + + .. method:: proc localeid + + .. method:: proc chpl_id() + + .. method:: proc chpl_localeid() + + .. method:: proc chpl_name() + + .. method:: proc _getChildCount() + +.. function:: proc here + +.. method:: proc locale.hostname : string + + + Get the hostname of this locale. + + :returns: the hostname of the compute node associated with the locale + :rtype: string + + +.. method:: proc locale.name : string + + + Get the name of this locale. + + In general, this method returns the same string as :proc:`locale.hostname`; + however, it can differ when the program is executed in an oversubscribed manner. + + .. note:: + + The locale's `id` (from :proc:`locale.id`) will be appended to the `hostname` + when launching in an oversubscribed manner with `CHPL_COMM=gasnet` and one of + the following configurations: + + - `CHPL_COMM_SUBSTRATE=udp` & `GASNET_SPAWNFN=L` + - `CHPL_COMM_SUBSTRATE=smp` + + More information about these environment variables can be found here: :ref:`readme-multilocale` + + :returns: the name of this locale + :rtype: string + + +.. method:: proc locale.id : int + + + Get the unique integer identifier for this locale. + + :returns: index of this locale in the range ``0..numLocales-1`` + :rtype: int + + + +.. method:: proc locale.maxTaskPar : int + + + Get the maximum task concurrency that one can expect to + achieve on this locale. + + :returns: the maximum number of tasks that can run in parallel + on this locale + :rtype: int + + Note that the value is an estimate by the runtime tasking layer. + Typically it is the number of physical processor cores available + to the program. Executing a data-parallel construct with more + tasks this that is unlikely to improve performance. + + +.. method:: proc locale.numPUs( logical: bool = false, accessible: bool = true) : int + + .. warning:: + + 'locale.numPUs' is unstable + + + Get the number of processing units available on this locale. + + A *processing unit* or *PU* is an instance of the processor + architecture, basically the thing that executes instructions. + :proc:`locale.numPUs` tells how many of these are present on this + locale. It can count either physical PUs (commonly known as + *cores*) or hardware threads such as hyperthreads and the like. + It can also either take into account any OS limits on which PUs + the program has access to or do its best to ignore such limits. + By default it returns the number of accessible physical cores. + + :arg logical: Count logical PUs (hyperthreads and the like), + or physical ones (cores)? Defaults to `false`, + for cores. + :type logical: `bool` + :arg accessible: Count only PUs that can be reached, or all of + them? Defaults to `true`, for accessible PUs. + :type accessible: `bool` + :returns: number of PUs + :rtype: `int` + + Note that there are several things that can cause the OS to limit + the processor resources available to a Chapel program. On plain + Linux systems using the ``taskset(1)`` command will do it. On + Cray systems the ``CHPL_LAUNCHER_CORES_PER_LOCALE`` environment + variable may do it, indirectly via the system job launcher. + Also on Cray systems, using a system job launcher (``aprun`` or + ``slurm``) to run a Chapel program manually may do it, as can + running programs within Cray batch jobs that have been set up + with limited processor resources. + + +.. method:: proc locale.runningTasks() : int + + + Get the number of tasks running on this locale. + + This method is intended to guide task creation during a parallel + section. If the number of running tasks is greater than or equal + to the locale's maximum task parallelism (queried via :proc:`locale.maxTaskPar`), + then creating more tasks is unlikely to decrease walltime. + + :returns: the number of tasks that have begun executing, but have not yet finished + :rtype: `int` + + +.. method:: operator locale. = (ref l1: locale, const ref l2: locale) + +.. class:: BaseLocale : writeSerializable + + + ``locale`` is the abstract class from which the various + implementations inherit. It specifies the required interface + and implements part of it, but requires the rest to be provided + by the corresponding concrete classes. + + + .. method:: proc init() + + .. method:: proc init( parent: locale) + + .. attribute:: const parent: locale = nilLocale + + .. attribute:: var nPUsLogAcc: int + + .. attribute:: var nPUsLogAll: int + + .. attribute:: var nPUsPhysAcc: int + + .. attribute:: var nPUsPhysAll: int + + .. method:: proc numPUs( logical: bool = false, accessible: bool = true) + + .. attribute:: var maxTaskPar: int + + .. method:: proc id : int + + .. method:: proc localeid : chpl_localeID_t + + .. method:: proc hostname : string + + .. method:: override proc serialize( writer, ref serializer) throws + + .. method:: proc name + + .. attribute:: var runningTaskCounter: chpl__processorAtomicType(int) + + .. method:: proc runningTaskCntSet( val: int) + + .. method:: proc runningTaskCntAdd( val: int) + + .. method:: proc runningTaskCntSub( val: int) + + .. method:: proc runningTaskCnt() + + .. method:: proc chpl_id() : int + + .. method:: proc chpl_localeid() : chpl_localeID_t + + .. method:: proc chpl_name() : string + + .. method:: proc _getChildCount() : int + + .. method:: proc addChild( loc: locale) + + .. method:: proc _getChild( idx: int) : locale + + .. method:: proc gpus const ref + + .. method:: proc gpusImpl() const ref + + .. method:: proc isGpu() : bool + +.. class:: DummyLocale : BaseLocale + + This class is used during initialization and is returned when + 'here' is used before the locale hierarchy is initialized. This is due to + the fact that "here" is used for memory and task control in setting up the + architecture itself. DummyLocale provides system-default tasking and + memory management. + + + .. method:: proc init() + + .. method:: override proc chpl_id() : int + + .. method:: override proc chpl_localeid() : chpl_localeID_t + + .. method:: override proc chpl_name() : string + + .. method:: override proc _getChildCount() : int + + .. method:: override proc _getChild( idx: int) : locale + + .. method:: override proc addChild( loc: locale) + +.. function:: proc chpl_getSingletonLocaleArray( arg: locale) const ref + +.. class:: AbstractLocaleModel : BaseLocale + + .. attribute:: var chpl_singletonThisLocaleArray: [0..0] locale + + .. method:: proc init( parent_loc: locale) + + .. method:: proc init() + +.. data:: var rootLocale = nilLocale + +.. data:: config param replicateRootLocale = true + +.. data:: var origRootLocale = nilLocale + +.. class:: AbstractRootLocale : BaseLocale + + .. method:: proc init() + + .. method:: proc init( parent_loc: locale) + + .. method:: proc getDefaultLocaleSpace() const ref: chpl_emptyLocaleSpace.type + + .. method:: proc getDefaultLocaleArray() const ref: chpl_emptyLocales.type + + .. method:: proc localeIDtoLocale( id: chpl_localeID_t) : locale + + .. itermethod:: iter chpl_initOnLocales() + + .. itermethod:: iter chpl_initOnLocales(param tag: iterKind) where tag == iterKind.standalone + +.. function:: proc chpl_init_rootLocale() + +.. function:: proc chpl_rootLocaleInitPrivate( locIdx) + +.. function:: proc chpl_defaultLocaleInitPrivate() + +.. function:: proc chpl_singletonCurrentLocaleInitPrivateSublocs( arg: locale) + +.. function:: proc chpl_singletonCurrentLocaleInitPrivate( locIdx) + +.. function:: proc chpl_task_getRequestedSubloc() : chpl_sublocID_t + +.. function:: export proc chpl_getLocaleID(ref localeID: chpl_localeID_t) + +.. function:: proc here_id + +.. function:: proc chpl_localeID_to_locale( id: chpl_localeID_t) : locale + +.. function:: export proc chpl_taskRunningCntInc() + +.. function:: export proc chpl_taskRunningCntDec() + +.. function:: export proc chpl_taskRunningCntReset() + +.. function:: proc deinit() + diff --git a/docs/internal/source/modules/internal/ChapelLocks.rst b/docs/internal/source/modules/internal/ChapelLocks.rst new file mode 100644 index 000000000..7aea29359 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelLocks.rst @@ -0,0 +1,41 @@ +.. default-domain:: chpl + +.. module:: ChapelLocks + :noindex: + +ChapelLocks +=========== +**Usage** + +.. code-block:: chapel + + use ChapelLocks; + + +or + +.. code-block:: chapel + + import ChapelLocks; + + +* Collection of mutexes/locks. + + +.. record:: chpl_LocalSpinlock + + + * Local processor atomic spinlock. Intended for situations with minimal + * contention or very short critical sections. + + + .. attribute:: var l: chpl__processorAtomicType(bool) + + .. method:: proc init() + + .. method:: proc init=( other: chpl_LocalSpinlock) + + .. method:: proc ref lock() + + .. method:: proc ref unlock() + diff --git a/docs/internal/source/modules/internal/ChapelNumLocales.rst b/docs/internal/source/modules/internal/ChapelNumLocales.rst new file mode 100644 index 000000000..514a0af6a --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelNumLocales.rst @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: ChapelNumLocales + :noindex: + +ChapelNumLocales +================ +**Usage** + +.. code-block:: chapel + + use ChapelNumLocales; + + +or + +.. code-block:: chapel + + import ChapelNumLocales; + +.. function:: proc chpl_comm_default_num_locales() : int + +.. data:: config const numLocales = chpl_comm_default_num_locales() + diff --git a/docs/internal/source/modules/internal/ChapelPrivatization.rst b/docs/internal/source/modules/internal/ChapelPrivatization.rst new file mode 100644 index 000000000..b39be13dd --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelPrivatization.rst @@ -0,0 +1,48 @@ +.. default-domain:: chpl + +.. module:: ChapelPrivatization + :noindex: + +ChapelPrivatization +=================== +**Usage** + +.. code-block:: chapel + + use ChapelPrivatization; + + +or + +.. code-block:: chapel + + import ChapelPrivatization; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. record:: chpl_privateObject_t + + .. attribute:: var obj: c_ptr(void) + +.. data:: var chpl_privateObjects: c_ptr(chpl_privateObject_t) + +.. function:: proc chpl_getPrivatizedCopy(type objectType, objectPid: int) : objectType + diff --git a/docs/internal/source/modules/internal/ChapelRange.rst b/docs/internal/source/modules/internal/ChapelRange.rst new file mode 100644 index 000000000..3e9eba4ff --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelRange.rst @@ -0,0 +1,1005 @@ +.. default-domain:: chpl + +.. module:: ChapelRange + :noindex: + +ChapelRange +=========== +**Usage** + +.. code-block:: chapel + + use ChapelRange; + + +or + +.. code-block:: chapel + + import ChapelRange; + +.. data:: config param debugChapelRange = false + +.. data:: config param useOptimizedRangeIterators = true + +.. data:: config param newSliceRule = true + + This flag, when set to `true`, used to switch to using the new slicing rule + and to turn off the deprecation warning for using the old rule. + Now the new rule is always enabled regardless of this flag's value. + When slicing with a range with a negative stride, the old rule + preserves the direction of the original range or domain/array dimension + whereas the new rule reverses such direction. + +.. data:: config param newRangeLiteralType = false + + Compile with ``-snewRangeLiteralType`` to switch to using the new rule + for determining the idxType of a range literal with param integral bounds + and to turn off the deprecation warning for using the old rule. + + The new rule defines such idxType to be the type produced by adding + the two bounds. I.e.,``(low..high).idxType`` is ``(low+high).type`` + when ``low`` and ``high`` are integral params. + +.. enum:: enum boundKind { both, low, high, neither } + + .. enumconstant:: enum constant both + + .. enumconstant:: enum constant low + + .. enumconstant:: enum constant high + + .. enumconstant:: enum constant neither + +.. enum:: enum strideKind { one, negOne, positive, negative, any } + + .. enumconstant:: enum constant one + + .. enumconstant:: enum constant negOne + + .. enumconstant:: enum constant positive + + .. enumconstant:: enum constant negative + + .. enumconstant:: enum constant any + +.. record:: _range + + .. attribute:: type idxType = int + + .. attribute:: param bounds: boundKind = boundKind.both + + .. attribute:: param strides: strideKind = strideKind.one + + .. attribute:: var _low: chpl__idxTypeToIntIdxType(idxType) + + .. attribute:: var _high: chpl__idxTypeToIntIdxType(idxType) + + .. attribute:: var _stride: if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType) + + .. attribute:: var _alignment: if strides.isPosNegOne() then nothing else chpl__rangeStrideType(idxType) + +.. method:: proc range.strType type + + .. warning:: + + range.strType is unstable and may be removed or renamed + + Returns the type of the range's stride. + +.. method:: proc range.chpl__promotionType() type + +.. method:: proc range.chpl_integralIdxType type + + The ``idxType`` as represented by an integer type. When + ``idxType`` is an enum type, this evaluates to ``int``. + Otherwise, it evaluates to ``idxType``. + + This is no-doc'd because we currently are hoping it can + be more of an implementation detail than a user-facing + feature. + +.. method:: proc range.init(type idxType, low: idxType, high: idxType) + +.. method:: proc range.init( low: ?t) + +.. method:: proc range.init( high: ?t) + +.. method:: proc range.init() + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, param internal: bool) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, _alignment, _aligned, param normalizeAlignment = true) + +.. method:: proc range.init(type idxType, param bounds: boundKind, param strides: strideKind, _low, _high, _stride, alignmentValue) + +.. method:: proc range.init=( other: range(?i, ?b, ?s)) + +.. method:: proc range.displayRepresentation( msg: string = "") : void + +.. function:: proc chpl_isValidRangeIdxType(type t) param + +.. function:: proc chpl_build_bounded_range(param low: integral, param high: integral) + +.. function:: proc chpl_build_bounded_range( low: int(8), high: int(8)) + +.. function:: proc chpl_build_bounded_range( low: int(16), high: int(16)) + +.. function:: proc chpl_build_bounded_range( low: int(32), high: int(32)) + +.. function:: proc chpl_build_bounded_range( low: int(64), high: int(64)) + +.. function:: proc chpl_build_bounded_range( low: uint(8), high: uint(8)) + +.. function:: proc chpl_build_bounded_range( low: uint(16), high: uint(16)) + +.. function:: proc chpl_build_bounded_range( low: uint(32), high: uint(32)) + +.. function:: proc chpl_build_bounded_range( low: uint(64), high: uint(64)) + +.. function:: proc chpl_build_bounded_range( low: enum, high: enum) + +.. function:: proc chpl_build_bounded_range( low: bool, high: bool) + +.. function:: proc chpl_build_bounded_range( low, high) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. function:: proc chpl__nudgeLowBound( low) + +.. function:: proc chpl__nudgeLowBound(param low) param + +.. function:: proc chpl__nudgeHighBound( high) + +.. function:: proc chpl__nudgeHighBound(param high) param + +.. function:: proc chpl_build_low_bounded_range( low: integral) + +.. function:: proc chpl_build_low_bounded_range( low: enum) + +.. function:: proc chpl_build_low_bounded_range( low: bool) + +.. function:: proc chpl_build_low_bounded_range( low) where !chpl_isValidRangeIdxType(low.type) + +.. function:: proc chpl_build_high_bounded_range( high: integral) + +.. function:: proc chpl_build_high_bounded_range( high: enum) + +.. function:: proc chpl_build_high_bounded_range( high: bool) + +.. function:: proc chpl_build_high_bounded_range( high) where !chpl_isValidRangeIdxType(high.type) + +.. function:: proc chpl_build_unbounded_range() + +.. method:: proc type range.createWithSingleElement( elm: idxType) + +.. function:: proc chpl_compute_low_param_loop_bound(param low: integral, param high: integral) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: integral, param high: integral) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low: enum, param high: low.type) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: enum, param high: low.type) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low: bool, param high: bool) param + +.. function:: proc chpl_compute_high_param_loop_bound(param low: bool, param high: bool) param + +.. function:: proc chpl_compute_low_param_loop_bound(param low, param high) param where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. function:: proc chpl_compute_low_param_loop_bound( low, high) + +.. function:: proc chpl_compute_count_param_loop(param count: integral) param + +.. function:: proc chpl_compute_count_param_loop( count) + +.. function:: proc chpl_low_bound_count_for_param_loop(param high: integral, param count: integral) param + +.. function:: proc chpl_low_bound_count_for_param_loop( high, count) + +.. function:: proc chpl_high_bound_count_for_param_loop(param low: integral, param count: integral) param + +.. function:: proc chpl_high_bound_count_for_param_loop( low, count) + +.. function:: proc chpl_bounded_count_for_param_loop_low(param low: integral, param high: integral, param count: integral) param + +.. function:: proc chpl_bounded_count_for_param_loop_low( low, high, count) + +.. function:: proc chpl_bounded_count_for_param_loop_high(param low: integral, param high: integral, param count: integral) param + +.. function:: proc chpl_bounded_count_for_param_loop_high( low, high, count) + +.. method:: proc range.stride where !hasParamStride() + + Returns the range's stride. + +.. method:: proc range.stride param where hasParamStride() + +.. method:: proc range.alignment where !hasParamAlignment() + + Returns the range's alignment. + +.. method:: proc range.alignment param where hasParamAlignment() + +.. method:: proc range.isAligned() where !hasParamAligned() + + Returns ``true`` if the range's alignment is unambiguous, + ``false`` otherwise. + +.. method:: proc range.isAligned() param where hasParamAligned() + +.. method:: proc range.hasParamStride() param + +.. method:: proc range.hasParamAlignmentField() param + +.. method:: proc range.hasParamAlignment() param + +.. method:: proc range.hasParamAligned() param + +.. method:: proc range.hasParamStrideAltvalAld() param + +.. method:: proc type range.hasParamStrideAltvalAld() param + +.. method:: proc range.hasLowBound() param + + Returns ``true`` if this range's low bound is *not* -:math:`\infty`, + and ``false`` otherwise. + +.. method:: proc range.lowBound : idxType + + Returns the range's low bound. If the range does not have a low + bound (e.g., ``..10``), the behavior is undefined. See also + :proc:`range.hasLowBound`. + +.. method:: proc range.hasUnitStride() param + +.. method:: proc range.hasPosNegUnitStride() param + +.. method:: proc range.hasPositiveStride() param where strides.hasSign() + +.. method:: proc range.hasPositiveStride() where strides.isAny() + +.. method:: proc range.hasNegativeStride() param where strides.hasSign() + +.. method:: proc range.hasNegativeStride() where strides.isAny() + +.. method:: proc param strideKind.isOne() param + +.. method:: proc param strideKind.isNegOne() param + +.. method:: proc param strideKind.isPosNegOne() param + +.. method:: proc param strideKind.isPositive() param + +.. method:: proc param strideKind.isNegative() param + +.. method:: proc param strideKind.hasSign() param + +.. method:: proc param strideKind.isAny() param + +.. method:: proc param strideKind.defaultStride() param + +.. function:: proc chpl_strideProduct(param s1: strideKind, param s2: strideKind) param + +.. function:: proc chpl_strideProduct( r1: range(?), r2: range(?)) param + +.. function:: proc chpl_strideProduct( r1: range(?), param stride2: integral) param + +.. function:: proc chpl_strideUnion(param s1: strideKind, param s2: strideKind) param + +.. function:: proc chpl_strideUnion( args: _tuple) param + +.. function:: proc chpl_strideUnion( arg, args ...) param + +.. function:: proc chpl_strideUnion( arg) param: strideKind + +.. function:: proc chpl_strideUnionRC( args: _tuple) param + +.. function:: proc chpl_strideUnionRC( arg, args ...) param + +.. function:: proc chpl_strideUnionRC( arg) param + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind) param + +.. function:: proc chpl_assignStrideIsSafe( lhs: range(?), rhs: range(?)) param + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride) param where chpl_assignStrideIsSafe(lhs, rhs) || lhs == strideKind.positive && isUint(rhsStride) + +.. function:: proc chpl_assignStrideIsSafe(param lhs: strideKind, param rhs: strideKind, rhsStride) + +.. function:: proc chpl_assignStrideIsUnsafe(param lhs: strideKind, param rhs: strideKind) param + +.. method:: proc ref range.chpl_setFields( low, high, stride) + +.. method:: proc ref range.chpl_setFields( low, high) + +.. method:: proc range.low : idxType + + Returns the range's aligned low bound. If this bound is + undefined (e.g., ``..10 by -2``), the behavior is undefined. + + Example: + + .. code-block:: chapel + + var r = 1..10 by -2; + writeln(r.low); + + produces the output + + .. code-block:: printoutput + + 2 + + + +.. method:: proc range.alignedLowAsInt + +.. method:: proc range.chpl_alignedLowAsIntForIter + +.. method:: proc range.hasHighBound() param + + Returns ``true`` if this range's high bound is *not* :math:`\infty`, + and ``false`` otherwise. + +.. method:: proc range.highBound : idxType + + Returns the range's high bound. If the range does not have a high + bound (e.g., ``1..``), the behavior is undefined. See also + :proc:`range.hasHighBound`. + + +.. method:: proc range.high : idxType + + Returns the range's aligned high bound. If the aligned high bound is + undefined (e.g., ``1.. by 2``), the behavior is undefined. + + Example: + + .. code-block:: chapel + + var r = 1..10 by 2; + writeln(r.high); + + produces the output + + .. code-block:: printoutput + + 9 + + +.. method:: proc range.alignedHighAsInt + +.. method:: proc range.chpl_alignedHighAsIntForIter + +.. method:: proc range.chpl_isNaturallyAligned() where !hasPosNegUnitStride() && bounds != boundKind.neither + +.. method:: proc range.chpl_isNaturallyAligned() param where hasPosNegUnitStride() || bounds == boundKind.neither + +.. method:: proc range.isEmpty() + + Returns ``true`` if the sequence represented by the range is + empty and ``false`` otherwise. If the range is ambiguous, the + behavior is undefined. + + +.. method:: proc range.isEmpty() where isFiniteIdxType(idxType) && this.bounds != boundKind.both + + .. warning:: + + range.isEmpty() is unstable for unbounded ranged over an enum or bool + +.. method:: proc range.size : int + + Returns the number of values represented by this range as an integer. + + If the size exceeds ``max(int)``, this procedure will halt when + bounds checks are on and have undefined behavior when they are not. + + If the represented sequence is infinite or undefined, an error is + generated. + + +.. method:: proc range.sizeAs(type t: integral) : t + + Returns the number of elements in this range as the specified + integer type. + + If the size exceeds the maximal value of that type, this + procedure will halt when bounds checks are on and have undefined + behavior when they are not. + + If the represented sequence is infinite or undefined, an error is + generated. + + +.. method:: proc range.sizeAsHelp(type t: integral, al = this.alignedLowAsInt, ah = this.alignedHighAsInt) : t + +.. method:: proc range.chpl_sizeAsForIter(type t: integral) : t + +.. method:: proc range.hasFirst() + + Returns ``true`` if the range has a first index, ``false`` otherwise. + +.. method:: proc range.hasFirstForIter() + +.. method:: proc range.hasFirst() param where hasFirstLastAreParam(this) + +.. method:: proc range.hasFirstForIter() param where hasFirstLastAreParam(this) + +.. method:: proc range.first + + Returns the first value in the sequence the range represents. If + the range has no first index, the behavior is undefined. See + also :proc:`range.hasFirst`. + +.. method:: proc range.firstAsInt + +.. method:: proc range.chpl_firstAsIntForIter + +.. method:: proc range.hasLast() + + Returns ``true`` if the range has a last index, ``false`` otherwise. + +.. method:: proc range.hasLastForIter() + +.. method:: proc range.hasLast() param where hasFirstLastAreParam(this) + +.. method:: proc range.hasLastForIter() param where hasFirstLastAreParam(this) + +.. method:: proc range.last + + Returns the last value in the sequence the range represents. If + the range has no last index, the behavior is undefined. See also + :proc:`range.hasLast`. + + +.. method:: proc range.lastAsInt + +.. method:: proc range.chpl_lastAsIntForIter + +.. function:: proc chpl_idxTypeSizeChange(type t) param + +.. method:: proc range.contains( ind: idxType) + + Returns ``true`` if the range's represented sequence contains + ``ind``, ``false`` otherwise. It is an error to invoke ``contains`` + if the represented sequence is not defined. + +.. method:: proc range.contains( other: range(?)) + + Returns ``true`` if the range ``other`` is contained within this one, + ``false`` otherwise. + + +.. function:: operator ==( r1: range(?), r2: range(?)) param where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType)) + +.. function:: operator ==( r1: range(?), r2: range(?)) : bool where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType) + + .. warning:: + + == between unbounded and bounded ranges is unstable and its behavior may change in the future + +.. function:: operator ==( r1: range(?), r2: range(?)) : bool where r1.bounds == r2.bounds + +.. function:: operator !=( r1: range(?), r2: range(?)) + +.. function:: operator !=( r1: range(?), r2: range(?)) : bool where r1.bounds != r2.bounds && isFiniteIdxType(r1.idxType) && isFiniteIdxType(r2.idxType) + + .. warning:: + + != between unbounded and bounded ranges is unstable and its behavior may change in the future + +.. function:: operator !=( r1: range(?), r2: range(?)) param where r1.bounds != r2.bounds && (!isFiniteIdxType(r1.idxType) || !isFiniteIdxType(r2.idxType)) + +.. function:: operator <( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator >( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator <=( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: operator >=( r1: range(?), r2: range(?)) where r1.bounds != boundKind.both || r2.bounds != boundKind.both + +.. function:: proc chpl_ident( r1: range(?), r2: range(?)) where r1.idxType == r2.idxType && r1.bounds == r2.bounds && r1.strides == r2.strides + +.. function:: proc chpl_ident( r1: range(?), r2: range(?)) param + +.. method:: proc range.boundingBox() + +.. method:: proc range.tryCast(type t: range(?)) where chpl_tryCastIsSafe(this, t) + + Casts a range to a new range type. Throws an IllegalArgumentError when + the original bounds and/or stride do not fit in the new idxType + or when the original stride is not legal for the new `strides` parameter. + + +.. method:: proc range.tryCast(type t: range(?)) throws where !chpl_tryCastIsSafe(this, t) + +.. function:: operator :( r: range(?), type t: range(?)) where chpl_castIsSafe(r, t) + + Cast a range to a new range type. The overload below throws when + the original bounds and/or stride do not fit in the new type or 'strides'. + TODO: should we allow 't' to be generic? + + +.. function:: operator :( r: range(?), type t: range(?)) throws where !chpl_castIsSafe(r, t) + +.. function:: proc chpl_throwingCast(type toType, from) throws + + cast 'from' to 'to', throwing an error if it does not fit + +.. function:: proc chpl_throwingCast(type toType, from) where chpl_idxCastIsSafe(toType, from.type) + +.. method:: proc range.chpl_checkStrides(type toType) : owned(IllegalArgumentError?) + + Returns 'nil' if 'this.stride' fits into 'toType.strides', + otherwise returns an IllegalArgumentError. + +.. function:: proc chpl_tryCastIsSafe( r: range(?), type t: range(?)) param + +.. function:: proc chpl_castIsSafe( r: range(?), type t: range(?)) param + +.. function:: proc chpl_idxCastIsSafe(type to, type from) param + +.. function:: proc chpl_idxCastThrows(type to, type from) param + +.. method:: proc range.chpl_boundsCheck( other: range(?e, ?b, ?s)) where b == boundKind.neither + +.. method:: proc range.chpl_boundsCheck( other: range(?e, ?b, ?s)) + +.. method:: proc range.chpl_boundsCheck( other: idxType) + +.. method:: proc ref range.alignLow() + + private + +.. method:: proc ref range.alignHigh() + + private + +.. method:: proc range.indexOrder( ind: idxType) + + .. warning:: + + range.indexOrder() is unstable and its behavior may change in the future + + + Returns an integer representing the zero-based ordinal value of + ``ind`` within the range's sequence of values if it is a member + of the sequence. Otherwise, returns -1. It is an error to + invoke ``indexOrder`` if the represented sequence is not defined + or the range does not have a first index. + + The following calls show the order of index 4 in each of the given ranges: + + .. code-block:: chapel + + (0..10).indexOrder(4) == 4 + (1..10).indexOrder(4) == 3 + (3..5).indexOrder(4) == 1 + (0..10 by 2).indexOrder(4) == 2 + (3..5 by 2).indexOrder(4) == -1 + + +.. method:: proc range.orderToIndex( ord: integral) : idxType + + .. warning:: + + range.orderToIndex() is unstable and its behavior may change in the future + + Returns the zero-based ``ord``-th element of this range's represented + sequence. It is an error to invoke ``orderToIndex`` if the range is not + defined, or if ``ord`` is negative or greater than the range's size. + The ``orderToIndex`` procedure is the reverse of ``indexOrder``. + + Example: + + .. code-block:: chapel + + 0..10.orderToIndex(4) == 4 + 1..10.orderToIndex(3) == 4 + 3..5.orderToIndex(1) == 4 + 0..10 by 2.orderToIndex(2) == 4 + + +.. method:: proc range.translate( offset: integral) + + .. warning:: + + range.translate() is unstable and its behavior may change in the future + + Returns a range with elements shifted from this range by ``offset``. + Formally, the range's low bound, high bound, and alignment values + will be shifted while the stride value will be preserved. If the + range's alignment is ambiguous, the behavior is undefined. + + Example: + + .. code-block:: chapel + + 0..9.translate(1) == 1..10 + 0..9.translate(2) == 2..11 + 0..9.translate(-1) == -1..8 + 0..9.translate(-2) == -2..7 + + +.. method:: proc range.translate( i) + +.. method:: proc range.translate( offset: integral) where chpl__singleValIdxType(idxType) + +.. method:: proc range.expand( offset: integral) where bounds != boundKind.both + +.. method:: proc range.expand( offset: integral) + + .. warning:: + + range.expand() is unstable and its behavior may change in the future + + Returns a range expanded by ``offset`` elements from each end. If + ``offset`` is negative, the range will be contracted. The stride + and alignment of the original range are preserved. + + Example: + + .. code-block:: chapel + + 0..9.expand(1) == -1..10 + 0..9.expand(2) == -2..11 + 0..9.expand(-1) == 1..8 + 0..9.expand(-2) == 2..7 + + + Formally, for a range represented by the tuple :math:`(l,h,s,a)`, + the result is :math:`(l-i,h+i,s,a)`. If the operand range is + ambiguously aligned, then so is the resulting range. + + +.. method:: proc range.expand( offset: integral) where chpl__singleValIdxType(idxType) + +.. method:: proc range.interior( offset: integral) where bounds != boundKind.both + +.. method:: proc range.interior( offset: integral) + + .. warning:: + + range.interior() is unstable and its behavior may change in the future + + Returns a range with ``offset`` elements from the interior portion of this + range. If ``offset`` is positive, take elements from the high end, and if + ``offset`` is negative, take elements from the low end. + + Example: + + .. code-block:: chapel + + 0..9.interior(1) == 9..9 + 0..9.interior(2) == 8..9 + 0..9.interior(-1) == 0..0 + 0..9.interior(-2) == 0..1 + + Formally, given a range denoted by the tuple :math:`(l,h,s,a)`, + + - if :math:`i < 0`, the result is :math:`(l,l-(i-1),s,a)`, + + - if :math:`i > 0`, the result is :math:`(h-(i-1),h,s,a)`, and + + - if :math:`i = 0`, the result is :math:`(l,h,s,a)`. + + This differs from the behavior of the count operator, in that + ``interior()`` preserves the alignment, and it uses the low and + high bounds rather than ``first`` and ``last`` to establish the + bounds of the resulting range. If the operand range is + ambiguously aligned, then so is the resulting range. + + +.. method:: proc range.exterior( offset: integral) where bounds != boundKind.both + +.. method:: proc range.exterior( offset: integral) + + .. warning:: + + range.exterior() is unstable and its behavior may change in the future + + Returns a range with ``offset`` elements from the exterior portion of this + range. If ``offset`` is positive, take elements from the high end, and if + ``offset`` is negative, take elements from the low end. + + Example: + + .. code-block:: chapel + + 0..9.exterior(1) = 10..10 + 0..9.exterior(2) = 10..11 + 0..9.exterior(-1) = -1..-1 + 0..9.exterior(-2) = -2..-1 + + Formally, given a range denoted by the tuple :math:`(l,h,s,a)`, + + - if :math:`i < 0`, the result is :math:`(l+i,l-1,s,a)`, + + - if :math:`i > 0`, the result is :math:`(h+1,h+i,s,a)`, and + + - if :math:`i = 0`, the result is :math:`(l,h,s,a)`. + + If the operand range is ambiguously aligned, then so is the resulting + range. + + +.. method:: proc range.exterior( offset: integral) where chpl__singleValIdxType(idxType) + +.. function:: operator = (ref r1: range(?), r2: range(?)) + +.. function:: operator +( r1: range(?), r2: range(?)) + +.. function:: operator -( r1: range(?), r2: range(?)) + +.. function:: operator +( r: range(?e, ?b, ?s), i: integral) + + .. warning:: + + '+' on ranges is unstable and may change in the future + +.. function:: operator +=(ref r: range(?e, ?b, ?s), offset: integral) + + .. warning:: + + '+=' on ranges is unstable and may change in the future + +.. function:: operator +( i: integral, r: range(?e, ?b, ?s)) + + .. warning:: + + '+' on ranges is unstable and may change in the future + +.. function:: operator -( r: range(?e, ?b, ?s), i: integral) + + .. warning:: + + '-' on ranges is unstable and may change in the future + +.. function:: operator -=(ref r: range(?e, ?b, ?s), offset: integral) + + .. warning:: + + '-=' on ranges is unstable and may change in the future + +.. function:: proc chpl_check_step_integral( step) + +.. function:: proc chpl_need_to_check_step( step, type strType) param + +.. function:: proc chpl_range_check_stride( step, type idxType) + +.. function:: proc chpl_range_check_stride(param step, type idxType) + +.. function:: proc chpl_by_help( r: range(?i, ?b, ?s), step, param newStrides) + +.. function:: operator by( r: range(?), step) + +.. function:: operator by( r: range(?), param step) + +.. function:: operator by( r, step) + +.. function:: operator align( r: range(?i, ?b, ?s), algn: i) + +.. function:: operator align( r: range(?i, ?b, ?s), algn) + +.. function:: operator align( r, algn) + +.. method:: proc range.offset(in offset: integral) + + .. warning:: + + range.offset() is unstable and its behavior may change in the future + + Returns a range whose alignment is this range's first index plus ``offset``. + If the range has no first index, a runtime error is generated. + + +.. method:: proc const range.this( other: range(?)) + +.. function:: proc chpl_count_help( r: range(?), i) where r.bounds == boundKind.neither + +.. function:: proc chpl_count_help( r, count: integral) + +.. function:: operator #( r: range(?), count: bool) + +.. function:: operator #( r: range(?), count: integral) + +.. function:: operator #( r: range(?i), count) + +.. function:: operator #( r, count) + +.. function:: proc chpl_checkIfRangeIterWillOverflow(type idxType, low, high, stride, first = low, last = high, shouldHalt = true) + +.. method:: proc range.checkIfIterWillOverflow( shouldHalt = true) + +.. iterfunction:: iter chpl_direct_range_iter(param low: integral, param high: integral) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(8), high: int(8)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(16), high: int(16)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(32), high: int(32)) + +.. iterfunction:: iter chpl_direct_range_iter( low: int(64), high: int(64)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(8), high: uint(8)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(16), high: uint(16)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(32), high: uint(32)) + +.. iterfunction:: iter chpl_direct_range_iter( low: uint(64), high: uint(64)) + +.. iterfunction:: iter chpl_direct_range_iter( low: enum, high: enum) + +.. iterfunction:: iter chpl_direct_range_iter( low: bool, high: bool) + +.. iterfunction:: iter chpl_direct_range_iter( low, high) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. iterfunction:: iter chpl_direct_strided_range_iter(param low: integral, param high: integral, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: enum, high: enum, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: bool, high: bool, stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter(param low: integral, param high: integral, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: enum, high: enum, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: bool, high: bool, param stride: integral) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride: uint(?w2)) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(8), high: int(8), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(16), high: int(16), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(32), high: int(32), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: int(64), high: int(64), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(8), high: uint(8), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(16), high: uint(16), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(32), high: uint(32), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low: uint(64), high: uint(64), stride) + +.. iterfunction:: iter chpl_direct_strided_range_iter( low, high, stride) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(high.type)) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: int(?w), count) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: uint(?w), count) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: enum, count: integral) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low: bool, count: integral) + +.. iterfunction:: iter chpl_direct_counted_range_iter( low, count) where !(chpl_isValidRangeIdxType(low.type) && chpl_isValidRangeIdxType(count.type)) + +.. iterfunction:: iter chpl_direct_counted_range_iter_helper( low, count) + +.. iterfunction:: iter chpl_direct_pos_stride_range_iter( low: ?t, high, stride) + +.. iterfunction:: iter chpl_direct_param_stride_range_iter( low: ?t, high, param stride) + +.. itermethod:: iter range.these() : nothing where !hasLowBoundForIter(this) && !hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && !hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where !hasLowBoundForIter(this) && hasHighBoundForIter(this) + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && hasHighBoundForIter(this) && !hasPosNegUnitStride() + +.. itermethod:: iter range.these() where hasLowBoundForIter(this) && hasHighBoundForIter(this) && hasPosNegUnitStride() + +.. itermethod:: iter range.generalIterator() + +.. itermethod:: iter range.these(param tag: iterKind) where tag == iterKind.standalone && !localeModelPartitionsIterationOnSublocales + +.. itermethod:: iter range.these(param tag: iterKind) where tag == iterKind.leader + +.. itermethod:: iter range.these(param tag: iterKind, followThis) where tag == iterKind.follower + +.. function:: operator :( x: range(?), type t: string) + +.. method:: proc range.chpl__unTranslate( i) + +.. function:: proc chpl__mod( dividend: integral, modulus: integral) where numBits(dividend.type) >= numBits(modulus.type) + +.. function:: proc chpl__mod( dividend: integral, modulus: integral) where numBits(dividend.type) < numBits(modulus.type) && isInt(modulus) + +.. function:: proc chpl__diffMod( minuend: integral, subtrahend: integral, modulus: integral) : minuend.type where minuend.type == subtrahend.type + +.. function:: proc chpl__diffMod( minuend: integral, subtrahend: integral, modulus: integral) + +.. function:: proc chpl__add( a: ?t, b: t, type resultType) + +.. function:: proc chpl__addRangeStrides( start, stride, count) : start.type + +.. function:: proc chpl__extendedEuclidHelper( u, v) + +.. function:: proc chpl__extendedEuclid( u: int(32), v: int(32)) + +.. function:: proc chpl__extendedEuclid( u: int(64), v: int(64)) + +.. function:: proc chpl__idxTypeToIntIdxType(type idxType) type + +.. method:: proc range.chpl_intToIdx( i) + +.. function:: proc chpl__intToIdx(type idxType: integral, i: integral) + +.. function:: proc chpl__intToIdx(type idxType: integral, param i: integral) param + +.. function:: proc chpl__intToIdx(type idxType: enum, i: integral) + +.. function:: proc chpl__intToIdx(type idxType: enum, param i: integral) param + +.. function:: proc chpl__intToIdx(type idxType, i: integral) where isBoolType(idxType) + +.. function:: proc chpl__intToIdx(type idxType, param i: integral) param where isBoolType(idxType) + +.. function:: proc chpl__intToIdx(type idxType, i: nothing) + +.. function:: proc chpl__idxToInt( i: integral) + +.. function:: proc chpl__idxToInt(param i: integral) param + +.. function:: proc chpl__idxToInt( i: enum) + +.. function:: proc chpl__idxToInt(param i: enum) param + +.. function:: proc chpl__idxToInt( i: bool) + +.. function:: proc chpl__idxToInt(param i: bool) param + +.. function:: proc chpl__singleValIdxType(type t) param + diff --git a/docs/internal/source/modules/internal/ChapelReduce.rst b/docs/internal/source/modules/internal/ChapelReduce.rst new file mode 100644 index 000000000..c170a0ba4 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelReduce.rst @@ -0,0 +1,272 @@ +.. default-domain:: chpl + +.. module:: ChapelReduce + :noindex: + +ChapelReduce +============ +**Usage** + +.. code-block:: chapel + + use ChapelReduce; + + +or + +.. code-block:: chapel + + import ChapelReduce; + +.. function:: proc chpl__scanStateResTypesMatch( op) param + +.. function:: proc chpl__scanIteratorZip( op, data) + + .. warning:: + + scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204 + +.. function:: proc chpl__scanIterator( op, data) + + .. warning:: + + scans are unstable due to questions about exclusive scans and the default behavior. See issue #20204 + +.. function:: proc chpl__accumgen( op, d) + +.. function:: proc chpl__reduceCombine( globalOp, localOp) + +.. function:: proc chpl__cleanupLocalOp( globalOp, localOp) + +.. function:: proc chpl_sumTypeIsSame(type eltType) param + +.. function:: proc chpl__sumType(type eltType) type + +.. class:: ReduceScanOp + + .. attribute:: var l: chpl_LocalSpinlock + +.. class:: SumReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value: chpl__sumType(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: ProductReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _prod_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: MaxReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = min(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: MinReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = max(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: minmax : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = (max(eltType), min(eltType)) + + .. method:: proc identity + + .. method:: proc accumulateOntoState(ref state, x: eltType) + + .. method:: proc accumulateOntoState(ref state, other: 2*(eltType)) + + .. method:: proc accumulate( x: eltType) + + .. method:: proc accumulate( state: 2*(eltType)) + + .. method:: proc combine( other: minmax(eltType)) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: LogicalAndReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _land_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: LogicalOrReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _lor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseAndReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _band_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseOrReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _bor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: BitwiseXorReduceScanOp : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _bxor_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. function:: proc _maxloc_id(type eltType) + +.. function:: proc _minloc_id(type eltType) + +.. class:: maxloc : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _maxloc_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + +.. class:: minloc : ReduceScanOp + + .. attribute:: type eltType + + .. attribute:: var value = _minloc_id(eltType) + + .. method:: proc identity + + .. method:: proc accumulate( x) + + .. method:: proc accumulateOntoState(ref state, x) + + .. method:: proc combine( x) + + .. method:: proc generate() + + .. method:: proc clone() + diff --git a/docs/internal/source/modules/internal/ChapelRemoteVars.rst b/docs/internal/source/modules/internal/ChapelRemoteVars.rst new file mode 100644 index 000000000..7141ffeb7 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelRemoteVars.rst @@ -0,0 +1,79 @@ +.. default-domain:: chpl + +.. module:: ChapelRemoteVars + :noindex: + +ChapelRemoteVars +================ +**Usage** + +.. code-block:: chapel + + use ChapelRemoteVars; + + +or + +.. code-block:: chapel + + import ChapelRemoteVars; + + +* Copyright 2024 Hewlett Packard Enterprise Development LP +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. class:: _remoteVarContainer + + .. attribute:: var containedValue + +.. record:: _remoteVarWrapper + + .. attribute:: type eltType + + .. attribute:: var tmp: owned(_remoteVarContainer(eltType)) + + .. method:: proc init(in tmp: owned(_remoteVarContainer(?eltType))) + + .. method:: proc ref get() ref + +.. function:: proc __defaultValueForType(type inType) + +.. function:: proc chpl__buildRemoteWrapper(const ref loc) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, type inType) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, in tr: _thunkRecord) + + .. warning:: + + remote variables are unstable + +.. function:: proc chpl__buildRemoteWrapper(const ref loc, type inType, in tr: _thunkRecord) + + .. warning:: + + remote variables are unstable + diff --git a/docs/internal/source/modules/internal/ChapelSerializedBroadcast.rst b/docs/internal/source/modules/internal/ChapelSerializedBroadcast.rst new file mode 100644 index 000000000..4a52d16f7 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelSerializedBroadcast.rst @@ -0,0 +1,28 @@ +.. default-domain:: chpl + +.. module:: ChapelSerializedBroadcast + :noindex: + +ChapelSerializedBroadcast +========================= +**Usage** + +.. code-block:: chapel + + use ChapelSerializedBroadcast; + + +or + +.. code-block:: chapel + + import ChapelSerializedBroadcast; + +.. data:: config param chpl__enableSerializedGlobals = true + +.. function:: proc chpl_get_global_serialize_table( idx: int) : c_ptr(void) + +.. function:: proc chpl__broadcastGlobal(ref localeZeroGlobal: ?T, id: int) where chpl__enableSerializedGlobals + +.. function:: proc chpl__destroyBroadcastedGlobal(ref localeZeroGlobal, id: int) where chpl__enableSerializedGlobals + diff --git a/docs/internal/source/modules/internal/ChapelShortArrayTransfer.rst b/docs/internal/source/modules/internal/ChapelShortArrayTransfer.rst new file mode 100644 index 000000000..7a80918e8 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelShortArrayTransfer.rst @@ -0,0 +1,30 @@ +.. default-domain:: chpl + +.. module:: ChapelShortArrayTransfer + :noindex: + +ChapelShortArrayTransfer +======================== +**Usage** + +.. code-block:: chapel + + use ChapelShortArrayTransfer; + + +or + +.. code-block:: chapel + + import ChapelShortArrayTransfer; + +.. data:: config param debugShortArrayTransfer = false + +.. data:: config param disableShortArrayTransfer = false + +.. data:: config param shortArrayTransferThreshold = 60 + +.. function:: proc chpl__staticCheckShortArrayTransfer( a, b) param + +.. function:: proc chpl__dynamicCheckShortArrayTransfer( a, b) + diff --git a/docs/internal/source/modules/internal/ChapelStandard.rst b/docs/internal/source/modules/internal/ChapelStandard.rst new file mode 100644 index 000000000..8c7b16c46 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelStandard.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: ChapelStandard + :noindex: + +ChapelStandard +============== +**Usage** + +.. code-block:: chapel + + use ChapelStandard; + + +or + +.. code-block:: chapel + + import ChapelStandard; + diff --git a/docs/internal/source/modules/internal/ChapelStaticVars.rst b/docs/internal/source/modules/internal/ChapelStaticVars.rst new file mode 100644 index 000000000..5e6911e78 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelStaticVars.rst @@ -0,0 +1,83 @@ +.. default-domain:: chpl + +.. module:: ChapelStaticVars + :noindex: + +ChapelStaticVars +================ +**Usage** + +.. code-block:: chapel + + use ChapelStaticVars; + + +or + +.. code-block:: chapel + + import ChapelStaticVars; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. enum:: enum sharingKind { computeOrRetrieve, computePerLocale } + + .. enumconstant:: enum constant computeOrRetrieve + + * + Default distribution mode. The value is computed on whichever + locale first calls the function; other locales remotely access + the value once it's computed. + + + .. enumconstant:: enum constant computePerLocale + + * + The variable is computed per-locale; the first call to the function + on each locale causes it to compute the static variable. + + +.. class:: _staticWrapperContainer + + .. attribute:: var value + +.. record:: _staticWrapper + + .. attribute:: type valueType + + .. attribute:: var container: owned(_staticWrapperContainer(valueType)?) + + .. attribute:: var inited: atomic(int) + + .. method:: proc init(type valueType) + + .. method:: proc ref setValue(in v: valueType) + + .. method:: proc ref getValue() ref: valueType + + .. method:: proc ref callerShouldComputeValue() + + .. method:: proc ref reset() + +.. function:: proc chpl__functionStaticVariableWrapperType(type valueType) type + +.. function:: proc chpl__executeStaticWrapperCleanupEverywhere( fn: proc (): void ) + diff --git a/docs/internal/source/modules/internal/ChapelSyncvar.rst b/docs/internal/source/modules/internal/ChapelSyncvar.rst new file mode 100644 index 000000000..2f63e29d3 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelSyncvar.rst @@ -0,0 +1,485 @@ +.. default-domain:: chpl + +.. module:: ChapelSyncvar + :noindex: + +ChapelSyncvar +============= +**Usage** + +.. code-block:: chapel + + use ChapelSyncvar; + + +or + +.. code-block:: chapel + + import ChapelSyncvar; + + + +.. data:: config param useNativeSyncVar = true + +.. function:: proc chpl__readXX( x) + +.. function:: proc chpl__readXX( x) where isAtomicType(x.type) + +.. record:: _syncvar : writeSerializable, readDeserializable + + *********************************** | ************************************* + * * + * The record wrapper to implement sync * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var wrapped: getSyncClassType(valType) + + .. attribute:: var isOwned: bool = true + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc init(const ref other: _syncvar) + + .. method:: proc init=(const ref other: _syncvar(?)) + + .. warning:: + + Initializing a type-inferred variable from a 'sync' is deprecated; apply a 'read??()' method to the right-hand side + + .. method:: proc init=(in other: this.type.valType) + + .. method:: proc deinit() + + .. method:: proc deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + +.. method:: proc _syncvar.readFE() + + + Read a full ``sync`` variable, leaving it empty. + + 1) Block until the ``sync`` variable is full. + 2) Read the value of the ``sync`` variable and set the variable to empty. + + :returns: The value of the ``sync`` variable. + + +.. method:: proc _syncvar.readFF() + + Read a full ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is full. + 2) Read the value of the ``sync`` variable and leave the variable full. + + :returns: The value of the ``sync`` variable. + + +.. method:: proc _syncvar.readXX() + + .. warning:: + + 'readXX' is unstable + + Read a ``sync`` variable regardless of its state, leaving its state unchanged. + + 1) Without blocking, read the value of the ``sync`` variable + 2) Leaving the state unchanged, return a value based on the current state: + + * full: return a copy of the stored value. + * empty: return either a new default-initialized value of the stored type + or, the last value stored (implementation dependent). + + :returns: The value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeEF(in val: valType) + + Write into an empty ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is empty. + 2) Write the value of the ``sync`` variable and leave the variable full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeFF(in val: valType) + + .. warning:: + + 'writeFF' is unstable + + Write into a full ``sync`` variable, leaving it full. + + 1) Block until the ``sync`` variable is full. + 2) Write the value of the ``sync`` variable and leave the variable full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.writeXF(in val: valType) + + .. warning:: + + 'writeXF' is unstable + + Write into a ``sync`` variable regardless of its state, leaving it full. + + 1) Do not block. + 2) Write the value of the ``sync`` variable, leave it's state full. + + :arg val: New value of the ``sync`` variable. + + +.. method:: proc ref _syncvar.reset() + + .. warning:: + + 'reset' is unstable + + + Resets the value of this ``sync`` variable to the default value of + its type. This method is non-blocking and the state of the ``sync`` + variable is set to empty when this method completes. + + +.. method:: proc _syncvar.isFull + + .. warning:: + + 'isFull' is unstable + + + Determine if the ``sync`` variable is full without blocking. + Does not alter the state of the ``sync`` variable. + + :returns: ``true`` if the state of the ``sync`` variable is full, ``false`` if it's empty. + + +.. function:: operator = (ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + Direct assignment to 'sync' variables is deprecated; apply a 'write??()' method to modify one + +.. function:: operator :( from, type t: _syncvar) where from.type == t.valType + +.. function:: operator :( from: _syncvar, type toType: _syncvar) + + .. warning:: + + Casting sync variables is deprecated + +.. function:: operator +=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator -=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator *=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator /=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator %=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator **=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator &=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator |=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator ^=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator >>=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: operator <<=(ref lhs: _syncvar(?t), rhs: t) + + .. warning:: + + 'op=' assignments to 'sync' variables are deprecated; add explicit '.read??'/'.write??' methods to modify one + +.. function:: proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _syncvar(?), ref rhs: _syncvar(?)) + +.. function:: proc chpl__compilerGeneratedCopySyncSingle(ref sv: _syncvar(?)) + +.. function:: proc chpl__initCopy(ref sv: _syncvar(?t), definedConst: bool) + + .. warning:: + + Initializing a type-inferred variable from a 'sync' is deprecated; apply a '.read??()' method to the right-hand side + +.. function:: proc chpl__autoCopy(const ref rhs: _syncvar, definedConst: bool) + +.. function:: proc chpl__maybeAutoDestroyed( x: _syncvar(?t)) param + +.. function:: proc chpl__autoDestroy( x: _syncvar(?)) + +.. function:: proc chpl__readXX(const ref x: _syncvar(?)) + +.. function:: operator <=>(ref lhs: _syncvar, ref rhs) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. function:: operator <=>(ref lhs, ref rhs: _syncvar) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. function:: operator <=>(ref lhs: _syncvar, ref rhs: _syncvar) + + .. warning:: + + Swapping 'sync' variables is deprecated; perform the swap manually using explicit '.read??'/'.write??' methods + +.. class:: _synccls + + *********************************** | ************************************* + * * + * Use of a class instance establishes the required identity property. * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var value: valType + + .. attribute:: var syncAux: chpl_sync_aux_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFE() + + .. method:: proc const readFF() + + .. method:: proc const readXX() + + .. method:: proc writeEF(in val: valType) + + .. method:: proc writeFF(in val: valType) + + .. method:: proc writeXF(in val: valType) + + .. method:: proc reset() + + .. method:: proc isFull + +.. class:: _qthreads_synccls + + .. attribute:: type valType + + .. attribute:: var alignedValue: aligned_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFE() + + .. method:: proc readFF() + + .. method:: proc readXX() + + .. method:: proc writeEF( val: valType) + + .. method:: proc writeFF( val: valType) + + .. method:: proc writeXF( val: valType) + + .. method:: proc reset() + + .. method:: proc isFull + +.. record:: _singlevar : writeSerializable, readDeserializable + + *********************************** | ************************************* + * * + * The record wrapper to implement single * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var wrapped: unmanaged(_singlecls(valType)) + + .. attribute:: var isOwned: bool = true + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc init(const ref other: _singlevar) + + .. method:: proc init=(const ref other: _singlevar) + + .. warning:: + + Initializing a type-inferred variable from a 'single' is deprecated; apply a 'read??()' method to the right-hand side + + .. method:: proc init=(in other: this.type.valType) + + .. method:: proc deinit() + + .. method:: proc deserialize( reader, ref deserializer) throws + + .. method:: proc type deserializeFrom( reader, ref deserializer) throws + + .. method:: proc serialize( writer, ref serializer) throws + +.. method:: proc _singlevar.readFF() + + Read a full ``single`` variable, leaving it full. + + 1) Block until the ``single`` variable is full. + 2) Read the value of the ``single`` variable and leave the variable full + + :returns: The value of the ``single`` variable. + + +.. method:: proc _singlevar.readXX() + + Read a ``single`` variable regardless of its state, leaving its state unchanged. + + 1) Without blocking, read the value of the ``single`` variable. + 2) Leaving the state unchanged, return a value based on the current state: + + * full: return a copy of the stored value. + * empty: return either a new default-initialized value of the stored type + or, the last value stored (implementation dependent). + + :returns: The value of the ``single`` variable. + + +.. method:: proc _singlevar.writeEF(in val: valType) + + Write into an empty ``single`` variable, leaving it full. + + 1) Block until the ``single`` variable is empty. + 2) Write the value of the ``single`` variable and leave the variable full. + + :arg val: New value of the single variable. + + +.. method:: proc _singlevar.isFull + + + Determine if the ``single`` variable is full without blocking. + Does not alter the state of the ``single`` variable. + + :returns: ``true`` if the state of the ``single`` variable is full, ``false`` if it's empty. + + +.. function:: operator = (ref lhs: _singlevar(?t), rhs: t) + + .. warning:: + + Direct assignment to 'single' variables is deprecated; apply '.writeEF()' to modify one + +.. function:: operator :( from, type t: _singlevar) where from.type == t.valType + +.. function:: operator :( from: _singlevar, type toType: _singlevar) + + .. warning:: + + Casting single variables is deprecated + +.. function:: proc chpl__compilerGeneratedAssignSyncSingle(ref lhs: _singlevar(?), ref rhs: _singlevar(?)) + +.. function:: proc chpl__compilerGeneratedCopySyncSingle(ref sv: _singlevar(?)) + +.. function:: proc chpl__initCopy(ref sv: _singlevar(?t), definedConst: bool) + + .. warning:: + + Initializing a type-inferred variable from a 'single' is deprecated; apply '.readFF()' to the right-hand side + +.. function:: proc chpl__autoCopy(const ref rhs: _singlevar, definedConst: bool) + +.. function:: proc chpl__maybeAutoDestroyed( x: _singlevar(?t)) param + +.. function:: proc chpl__autoDestroy( x: _singlevar(?)) + +.. function:: proc chpl__readXX(const ref x: _singlevar(?)) + +.. class:: _singlecls + + *********************************** | ************************************* + * * + * Use of a class instance establishes the required identity property. * + * * + ************************************* | *********************************** + + .. attribute:: type valType + + .. attribute:: var value: valType + + .. attribute:: var singleAux: chpl_single_aux_t + + .. method:: proc init(type valType) + + .. method:: proc init(type valType, in value: valType) + + .. method:: proc deinit() + + .. method:: proc readFF() + + .. method:: proc readXX() + + .. method:: proc writeEF(in val: valType) + + .. method:: proc isFull + diff --git a/docs/internal/source/modules/internal/ChapelTaskData.rst b/docs/internal/source/modules/internal/ChapelTaskData.rst new file mode 100644 index 000000000..47bbe089f --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelTaskData.rst @@ -0,0 +1,48 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskData + :noindex: + +ChapelTaskData +============== +**Usage** + +.. code-block:: chapel + + use ChapelTaskData; + + +or + +.. code-block:: chapel + + import ChapelTaskData; + +.. function:: proc chpl_task_data_setDynamicEndCount( tls: c_ptr(chpl_task_infoChapel_t), end: _remoteEndCountType) + +.. function:: proc chpl_task_data_getDynamicEndCount( tls: c_ptr(chpl_task_infoChapel_t)) + +.. function:: proc chpl_task_data_setSerial( tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void + +.. function:: proc chpl_task_data_getSerial( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_data_setNextCoStmtSerial( tls: c_ptr(chpl_task_infoChapel_t), makeSerial: bool) : void + +.. function:: proc chpl_task_data_getNextCoStmtSerial( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_data_setCommDiagsTemporarilyDisabled( tls: c_ptr(chpl_task_infoChapel_t), disabled: bool) : bool + +.. function:: proc chpl_task_data_getCommDiagsTemporarilyDisabled( tls: c_ptr(chpl_task_infoChapel_t)) : bool + +.. function:: proc chpl_task_setDynamicEndCount( end: _remoteEndCountType) + +.. function:: proc chpl_task_getDynamicEndCount() : _remoteEndCountType + +.. function:: export proc chpl_task_setSerial( makeSerial: bool) : void + +.. function:: export proc chpl_task_getSerial() : bool + +.. function:: export proc chpl_task_setCommDiagsTemporarilyDisabled( disabled: bool) : bool + +.. function:: export proc chpl_task_getCommDiagsTemporarilyDisabled() : bool + diff --git a/docs/internal/source/modules/internal/ChapelTaskDataHelp.rst b/docs/internal/source/modules/internal/ChapelTaskDataHelp.rst new file mode 100644 index 000000000..13986c3f7 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelTaskDataHelp.rst @@ -0,0 +1,32 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskDataHelp + :noindex: + +ChapelTaskDataHelp +================== +**Usage** + +.. code-block:: chapel + + use ChapelTaskDataHelp; + + +or + +.. code-block:: chapel + + import ChapelTaskDataHelp; + +.. type:: type chpl_task_infoChapel_t + +.. function:: proc chpl_task_getInfoChapel() : c_ptr(chpl_task_infoChapel_t) + +.. function:: proc chpl_task_getInfoChapelInBundle( args: chpl_task_bundle_p) : c_ptr(chpl_task_infoChapel_t) + +.. function:: proc chpl_task_data_setup( args: chpl_task_bundle_p, infoChapel: c_ptr(chpl_task_infoChapel_t)) + +.. function:: proc chpl_save_task_error( e: _EndCountBase, err: unmanaged(Error?)) + +.. function:: proc chpl_save_task_error_owned( e: _EndCountBase, in err: owned(Error?)) + diff --git a/docs/internal/source/modules/internal/ChapelTaskID.rst b/docs/internal/source/modules/internal/ChapelTaskID.rst new file mode 100644 index 000000000..548e4beed --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelTaskID.rst @@ -0,0 +1,30 @@ +.. default-domain:: chpl + +.. module:: ChapelTaskID + :noindex: + +ChapelTaskID +============ +**Usage** + +.. code-block:: chapel + + use ChapelTaskID; + + +or + +.. code-block:: chapel + + import ChapelTaskID; + +.. function:: operator = (ref a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator ==( a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator !=( a: chpl_taskID_t, b: chpl_taskID_t) + +.. function:: operator :( x: chpl_taskID_t, type t: int(64)) + +.. function:: operator :( x: chpl_taskID_t, type t: uint(64)) + diff --git a/docs/internal/source/modules/internal/ChapelThreads.rst b/docs/internal/source/modules/internal/ChapelThreads.rst new file mode 100644 index 000000000..66e9f1593 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelThreads.rst @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: ChapelThreads + :noindex: + +ChapelThreads +============= +**Usage** + +.. code-block:: chapel + + use ChapelThreads; + + +or + +.. code-block:: chapel + + import ChapelThreads; + +.. function:: proc chpl_task_getenvNumThreadsPerLocale() : int(32) + +.. data:: const numThreadsPerLocale: int = chpl_task_getenvNumThreadsPerLocale() + diff --git a/docs/internal/source/modules/internal/ChapelTuple.rst b/docs/internal/source/modules/internal/ChapelTuple.rst new file mode 100644 index 000000000..f3642d44c --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelTuple.rst @@ -0,0 +1,214 @@ +.. default-domain:: chpl + +.. module:: ChapelTuple + :noindex: + +ChapelTuple +=========== +**Usage** + +.. code-block:: chapel + + use ChapelTuple; + + +or + +.. code-block:: chapel + + import ChapelTuple; + + + +.. record:: _tuple + + .. attribute:: param size: int + +.. function:: proc chpl__init_tuple(param size: int) + +.. function:: proc _build_tuple(type t ...) type + +.. function:: proc _build_tuple(x ...) + +.. function:: proc _build_tuple_noref(type t ...) type + +.. function:: proc _build_tuple_always_allow_ref(x ...) + +.. function:: proc chpl__unref(type t) type + +.. function:: operator *(param p: int, type t) type + +.. function:: operator *(param p: uint, type t) type + +.. function:: operator *(param p: bool, type t) type + +.. function:: operator *( p: bool, type t) type + +.. function:: proc _build_star_tuple_noref(param p: int, type t) type + +.. function:: operator *(type t, param p: int) + +.. function:: operator *( p: integral, type t) type + +.. function:: proc chpl__tuplify( x) + +.. function:: proc _check_tuple_var_decl(const ref x: _tuple, param p) param + +.. function:: proc _check_tuple_var_decl(const ref x, param p) param + +.. function:: operator = (ref x: _tuple, y: _tuple) where x.size == y.size + +.. method:: proc _tuple.this( i: integral) ref + +.. method:: proc _tuple.this( i: bool) ref + +.. data:: config param CHPL_WARN_TUPLE_ITERATION = "unset" + +.. itermethod:: iter ref _tuple.these() ref + +.. itermethod:: iter _tuple.these(param tag: iterKind) where tag == iterKind.leader + +.. itermethod:: iter ref _tuple.these(param tag: iterKind, followThis: _tuple) ref where tag == iterKind.follower + +.. method:: proc _tuple.indices + +.. function:: operator :( x: (?, ?), type t: complex(64)) + + + Cast from a generic two-tuple to a ``complex(64)`` + + +.. function:: operator :( x: (?, ?), type t: complex(128)) + + + Cast from a generic two-tuple to a ``complex(128)`` + + +.. function:: operator :( x: _tuple, type t: _tuple) + +.. function:: proc chpl__tupleRest( t: _tuple) + +.. function:: operator +( a: _tuple) + +.. function:: operator -( a: _tuple) + +.. function:: operator ~( a: _tuple) + +.. function:: operator !( a: _tuple) + +.. function:: proc max(type t) : t where isTupleType(t) + + + Returns a tuple of type t with each component set to ``max`` + of the type in the corresponding component of the argument. + + +.. function:: proc min(type t) : t where isTupleType(t) + + + Returns a tuple of type t with each component set to ``min`` + of the type in the corresponding component of the argument. + + +.. function:: proc chpl_TwoHomogTuples( t1, t2) param + +.. function:: operator +( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator +( a: _tuple, b: _tuple) + +.. function:: operator -( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator -( a: _tuple, b: _tuple) + +.. function:: operator *( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator *( a: _tuple, b: _tuple) + +.. function:: operator /( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator /( a: _tuple, b: _tuple) + +.. function:: operator %( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator %( a: _tuple, b: _tuple) + +.. function:: operator **( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator **( a: _tuple, b: _tuple) + +.. function:: operator &( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator &( a: _tuple, b: _tuple) + +.. function:: operator |( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator |( a: _tuple, b: _tuple) + +.. function:: operator ^( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator ^( a: _tuple, b: _tuple) + +.. function:: operator <<( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator <<( a: _tuple, b: _tuple) + +.. function:: operator >>( a: _tuple, b: _tuple) where chpl_TwoHomogTuples(a, b) + +.. function:: operator >>( a: _tuple, b: _tuple) + +.. function:: operator >( a: _tuple, b: _tuple) + +.. function:: operator >=( a: _tuple, b: _tuple) + +.. function:: operator <( a: _tuple, b: _tuple) + +.. function:: operator <=( a: _tuple, b: _tuple) + +.. function:: operator ==( a: _tuple, b: _tuple) + +.. function:: operator !=( a: _tuple, b: _tuple) + +.. function:: operator +( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator +( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator -( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator -( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator *( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator *( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator /( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator /( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator %( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator %( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator **( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator **( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator &( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator &( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator |( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator |( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator ^( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator ^( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator <<( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator <<( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + +.. function:: operator >>( x: _tuple, y: x(0).type) where isHomogeneousTuple(x) + +.. function:: operator >>( x: ?t, y: _tuple) where isHomogeneousTuple(y) && isCoercible(t, y(0).type) + diff --git a/docs/internal/source/modules/internal/ChapelUtil.rst b/docs/internal/source/modules/internal/ChapelUtil.rst new file mode 100644 index 000000000..5bf7d23b7 --- /dev/null +++ b/docs/internal/source/modules/internal/ChapelUtil.rst @@ -0,0 +1,52 @@ +.. default-domain:: chpl + +.. module:: ChapelUtil + :noindex: + +ChapelUtil +========== +**Usage** + +.. code-block:: chapel + + use ChapelUtil; + + +or + +.. code-block:: chapel + + import ChapelUtil; + +.. function:: proc safeAdd( a: ?t, b: t) + +.. function:: proc safeSub( a: ?t, b: t) + +.. function:: proc safeMul( a: ?t, b: t) + +.. function:: proc _command_line_cast(param s: chpl_c_string, type t, x: c_ptrConst(c_char)) + +.. record:: chpl_main_argument + + .. attribute:: var argc: int(64) + + .. attribute:: var return_value: int(32) + +.. function:: proc chpl_convert_args( arg: chpl_main_argument) + +.. function:: proc chpl_get_mli_connection( arg: chpl_main_argument) + +.. function:: proc chpl_rt_preUserCodeHook() + +.. function:: proc chpl_rt_postUserCodeHook() + +.. function:: proc allocate_string_literals_buf( s: int) : c_ptrConst(c_char) + +.. function:: proc deallocate_string_literals_buf() : void + +.. data:: config param printModuleDeinitOrder = false + +.. function:: proc chpl_addModule( moduleName: chpl_c_string, deinitFun: chpl_c_fn_ptr) + +.. function:: export proc chpl_deinitModules() + diff --git a/docs/internal/source/modules/internal/DefaultAssociative.rst b/docs/internal/source/modules/internal/DefaultAssociative.rst new file mode 100644 index 000000000..c45502a12 --- /dev/null +++ b/docs/internal/source/modules/internal/DefaultAssociative.rst @@ -0,0 +1,210 @@ +.. default-domain:: chpl + +.. module:: DefaultAssociative + :noindex: + +DefaultAssociative +================== +**Usage** + +.. code-block:: chapel + + use DefaultAssociative; + + +or + +.. code-block:: chapel + + import DefaultAssociative; + +.. data:: config param debugDefaultAssoc = false + +.. data:: config param debugAssocDataPar = false + +.. data:: config param defaultAssociativeSupportsAutoLocalAccess = true + +.. class:: DefaultAssociativeDomRehashHelper : chpl__rehashHelpers + + .. attribute:: var dom: unmanaged(DefaultAssociativeDom(?)) + + .. method:: override proc startRehash( newSize: int) + + .. method:: override proc moveElementDuringRehash( oldSlot: int, newSlot: int) + + .. method:: override proc finishRehash( oldSize: int) + +.. class:: DefaultAssociativeDom : BaseAssociativeDom + + .. attribute:: type idxType + + .. attribute:: param parSafe: bool + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var numEntries: chpl__processorAtomicType(int) + + .. attribute:: var tableLock: if parSafe then chpl_LocalSpinlock else nothing + + .. attribute:: var table: chpl__hashtable(idxType, nothing) + + .. method:: proc lockTable() + + .. method:: proc unlockTable() + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: proc init(type idxType, param parSafe: bool, dist: unmanaged(DefaultDist)) + + .. method:: proc deinit() + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc dsiSerialWrite( f) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialRead( f) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: proc dsiNumIndices + + .. itermethod:: iter dsiIndsIterSafeForRemoving() + + .. method:: proc _isSlotFull( slot: int) : bool + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: override proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: override proc dsiClear() + + .. method:: proc dsiMember( idx: idxType) : bool + + .. method:: override proc dsiAdd(in idx) + + .. method:: proc _add(in idx: idxType) + + .. method:: proc dsiRemove( idx: idxType) + + .. method:: proc dsiRequestCapacity( numKeys: int) + + .. itermethod:: iter dsiSorted( comparator) + + .. itermethod:: iter _fullSlots() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: DefaultAssociativeArr : AbsBaseArr(?) + + .. attribute:: type idxType + + .. attribute:: param parSafeDom: bool + + .. attribute:: var dom: unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom)) + + .. attribute:: var dataSize: int + + .. attribute:: var data: _ddata(eltType) + + .. attribute:: var tmpData: _ddata(eltType) + + .. attribute:: var eltsNeedDeinit = true + + .. method:: proc init(type eltType, type idxType, param parSafeDom, dom: unmanaged(DefaultAssociativeDom(idxType, parSafe = parSafeDom)), param initElts) + + .. method:: proc deinit() + + .. method:: proc rank param + + .. method:: override proc dsiGetBaseDom() + + .. method:: proc dsiAccess( idx: idxType) ref + + .. method:: proc dsiAccess( idx: 1*(idxType)) ref + + .. method:: proc dsiAccess( idx: idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( idx: 1*(idxType)) ref where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( idx: idxType) const ref + + .. method:: proc dsiAccess( idx: 1*(idxType)) const ref + + .. method:: proc dsiLocalAccess( i) ref + + .. method:: proc dsiLocalAccess( i) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiLocalAccess( i) const ref + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis) ref where tag == iterKind.follower + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws where _usingSerializers(f) && !_isDefaultDeser(f) + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws where _isDefaultDeser(f) + + .. method:: proc dsiSerialReadWrite( f, in printBraces = true, inout first = true) throws + + .. method:: proc readChapelStyleAssocArray( f) throws + + .. method:: proc dsiSerialWrite( f) throws + + .. method:: proc dsiSerialRead( f) throws + + .. itermethod:: iter dsiSorted( comparator) + + .. method:: proc _doDefaultInitSlot( slot: int, inAdd: bool) + + .. method:: override proc _defaultInitSlot( slot: int) + + .. method:: override proc _deinitSlot( slot: int) + + .. method:: proc _elementNeedsDeinit() param + + .. method:: proc _deinitElement(ref elt: eltType) + + .. method:: override proc _startRehash( newSize: int) + + .. method:: override proc _finishRehash( oldSize: int) + + .. method:: override proc _moveElementDuringRehash( oldslot: int, newslot: int) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + +.. function:: proc chpl_serialReadWriteAssociativeHelper( f, arr, dom) throws where _usingSerializers(f) && !_isDefaultDeser(f) + +.. function:: proc chpl_serialReadWriteAssociativeHelper( f, arr, dom) throws + diff --git a/docs/internal/source/modules/internal/DefaultRectangular.rst b/docs/internal/source/modules/internal/DefaultRectangular.rst new file mode 100644 index 000000000..9959180ac --- /dev/null +++ b/docs/internal/source/modules/internal/DefaultRectangular.rst @@ -0,0 +1,508 @@ +.. default-domain:: chpl + +.. module:: DefaultRectangular + :noindex: + +DefaultRectangular +================== +**Usage** + +.. code-block:: chapel + + use DefaultRectangular; + + +or + +.. code-block:: chapel + + import DefaultRectangular; + +.. data:: config const dataParTasksPerLocale = 0 + + .. warning:: + + The variable 'dataParTasksPerLocale' is unstable and its interface is subject to change in the future + +.. data:: config const dataParIgnoreRunningTasks = false + + .. warning:: + + The variable 'dataParIgnoreRunningTasks' is unstable and its interface is subject to change in the future + +.. data:: config const dataParMinGranularity: int = 1 + + .. warning:: + + The variable 'dataParMinGranularity' is unstable and its interface is subject to change in the future + +.. data:: config param debugDefaultDist = false + +.. data:: config param debugDefaultDistBulkTransfer = false + +.. data:: config param debugDataPar = false + +.. data:: config param debugDataParNuma = false + +.. data:: config param disableArrRealloc = false + +.. data:: config param reportInPlaceRealloc = false + +.. data:: config param parallelAssignThreshold = 2 * 1024 * 1024 + +.. data:: config param enableParallelGetsInAssignment = false + +.. data:: config param enableParallelPutsInAssignment = false + +.. data:: config param defaultDoRADOpt = true + +.. data:: config param defaultDisableLazyRADOpt = false + +.. data:: config param earlyShiftData = true + +.. data:: config param usePollyArrayIndex = false + +.. data:: config param defaultRectangularSupportsAutoLocalAccess = true + +.. enum:: enum ArrayStorageOrder { RMO, CMO } + + .. enumconstant:: enum constant RMO + + .. enumconstant:: enum constant CMO + +.. data:: config param defaultStorageOrder = ArrayStorageOrder.RMO + +.. data:: param storageOrder = defaultStorageOrder + +.. function:: proc polly_array_index(arguments: int ...) : int + +.. class:: DefaultDist : BaseDist + + .. warning:: + + DefaultDist is unstable and may change in the future + + .. method:: override proc dsiNewRectangularDom(param rank: int, type idxType, param strides: strideKind, inds) + + .. method:: override proc dsiNewAssociativeDom(type idxType, param parSafe: bool) + + .. method:: override proc dsiNewSparseDom(param rank: int, type idxType, dom: domain) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiIndexToLocale( ind) + + .. method:: proc dsiClone() + + .. method:: proc dsiAssign( other: this.type) + + .. method:: proc dsiEqualDMaps( d: unmanaged(DefaultDist)) param + + .. method:: proc dsiEqualDMaps( d) param + + .. method:: override proc trackDomains() param + + .. method:: override proc dsiTrackDomains() + + .. method:: override proc singleton() param + + .. method:: override proc dsiIsLayout() param + +.. data:: var defaultDist = new dmap(new unmanaged DefaultDist()) + +.. function:: proc chpl_defaultDistInitPrivate() + +.. class:: DefaultRectangularDom : BaseRectangularDom(?) + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var ranges: rank*range(idxType, boundKind.both, strides) + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: override proc type isDefaultRectangular() param + + .. method:: override proc isDefaultRectangular() param + + .. method:: proc init(param rank, type idxType, param strides, dist) + + .. method:: proc chpl_integralIdxType type + + .. method:: override proc dsiMyDist() + + .. record:: _serialized_domain + + .. attribute:: param rank + + .. attribute:: type idxType + + .. attribute:: param strides + + .. attribute:: var dims + + .. attribute:: param isDefaultRectangular + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: proc dsiGetIndices() + + .. method:: proc dsiSetIndices( x) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. itermethod:: iter these_help(param d: int) + + .. itermethod:: iter these_help(param d: int, block) + + + iter these_help(param d: int) where storageOrder == ArrayStorageOrder.CMO { + param rd = rank - d + 1; + if rd == 1 { + for i in ranges(rd) do + yield i; + } else if rd == 2 { + for i in ranges(rd) do + for j in these_help(rank-1) do + yield (j, i); + } else { + for i in ranges(rd) do + for j in these_help(d+1) do + yield ((...j), i); + } + } + + .. itermethod:: iter these( tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) + + + iter these_help(param d: int, block) where storageOrder == ArrayStorageOrder.CMO { + param rd = rank - d + 1; + if rd == 1 { + for i in block(rd) do + yield i; + } else if rd == 2 { + for i in block(rd) do + for j in these_help(block.size, block) do + yield (j, i); + } else { + for i in block(rd) do + for j in these_help(d+1, block) do + yield ((...j), i); + } + } + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity, offset = createTuple(rank, chpl_integralIdxType, 0: chpl_integralIdxType)) where tag == iterKind.follower + + .. method:: proc dsiMember( ind: rank*idxType) + + .. method:: proc dsiIndexOrder( ind: rank*idxType) + + .. method:: proc dsiDims() + + .. method:: proc dsiDim( d: int) + + .. method:: proc dsiDim(param d: int) + + .. method:: proc dsiNumIndices + + .. method:: proc parSafe param + + .. method:: override proc dsiLow + + .. method:: override proc dsiHigh + + .. method:: override proc dsiAlignedLow + + .. method:: override proc dsiAlignedHigh + + .. method:: override proc dsiStride + + .. method:: override proc dsiAlignment + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. method:: proc doiTryCreateArray(type eltType) throws + + .. method:: proc dsiBuildArrayWith(type eltType, data: _ddata(eltType), allocSize: int) + + .. method:: proc dsiLocalSlice( ranges) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: proc chpl_intToIdx( i) + +.. function:: proc chpl__intToIdx(type idxType, i: integral, j ...) + +.. function:: proc chpl__intToIdx(type idxType, i: integral, j: integral) + +.. function:: proc chpl__intToIdx(type idxType, i: _tuple) + +.. record:: _remoteAccessData + + .. attribute:: type eltType + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. attribute:: param blkChanged: bool = false + + .. attribute:: var off: rank*idxType + + .. attribute:: var blk: rank*int + + .. attribute:: var str: rank*chpl__signedType(chpl__idxTypeToIntIdxType(idxType)) + + .. attribute:: var origin: int + + .. attribute:: var factoredOffs: int + + .. attribute:: var data: _ddata(eltType) + + .. attribute:: var shiftedData: _ddata(eltType) + + .. method:: proc hasUnitStride() param + + .. method:: proc ref theData ref + + .. method:: proc getDataElem( i) ref + + .. method:: proc dataElem( i) ref + + .. method:: proc shiftedDataElem( i) ref + +.. method:: proc _remoteAccessData.getDataIndex( ind: idxType) + +.. method:: proc _remoteAccessData.getDataIndex( ind: rank*idxType) + +.. method:: proc ref _remoteAccessData.computeFactoredOffs() + +.. method:: proc ref _remoteAccessData.initShiftedData() + +.. method:: proc _remoteAccessData.strideAlignUp( lo, r) + +.. method:: proc _remoteAccessData.strideAlignDown( hi, r) + +.. method:: proc ref _remoteAccessData.initDataFrom( other: _remoteAccessData) + +.. method:: proc _remoteAccessData.toSlice( newDom) + +.. method:: proc _remoteAccessData.toReindex( newDom) + +.. method:: proc _remoteAccessData.toRankChange( newDom, cd, idx) + +.. class:: LocRADCache + + .. attribute:: type eltType + + .. attribute:: param rank: int + + .. attribute:: type idxType + + .. attribute:: param strides: strideKind + + .. attribute:: var targetLocDom: domain(rank) + + .. attribute:: var RAD: [targetLocDom] _remoteAccessData(eltType, rank, idxType, strides) + + .. attribute:: var RADLocks: [targetLocDom] chpl_LocalSpinlock + + .. method:: proc init(type eltType, param rank: int, type idxType, param strides: strideKind, newTargetLocDom: domain(rank)) + + .. method:: proc lockRAD( rlocIdx) + + .. method:: proc unlockRAD( rlocIdx) + +.. class:: DefaultRectangularArr : BaseRectangularArr(?) + + .. attribute:: type idxSignedType = chpl__signedType(chpl__idxTypeToIntIdxType(idxType)) + + .. attribute:: var dom: unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides)) + + .. attribute:: var off: rank*idxType + + .. attribute:: var blk: rank*int + + .. attribute:: var sizesPerDim: rank*int + + .. attribute:: var str: rank*idxSignedType + + .. attribute:: var factoredOffs: int + + .. attribute:: var data: _ddata(eltType) = nil + + .. attribute:: var shiftedData: _ddata(eltType) + + .. attribute:: var externFreeFunc: c_ptr(void) + + .. attribute:: var externArr: bool = false + + .. attribute:: var _borrowed: bool = true + + .. attribute:: var callPostAlloc: bool = true + + .. attribute:: var deinitElts: bool = true + + .. method:: proc init(type eltType, param rank, type idxType, param strides, dom: unmanaged(DefaultRectangularDom(rank = rank, idxType = idxType, strides = strides)), param initElts = true, param deinitElts = initElts, data: _ddata(eltType) = nil, externArr = false, _borrowed = false, externFreeFunc: c_ptr(void) = nil) + + .. method:: proc chpl_integralIdxType type + + .. method:: override proc dsiDisplayRepresentation() + + .. method:: override proc dsiGetBaseDom() + + .. method:: override proc dsiElementInitializationComplete() + + .. method:: override proc dsiElementDeinitializationComplete() + + .. method:: override proc chpl_unsafeAssignIsClassElementNil( manager, idx) where idx.type == rank * idxType + + .. method:: override proc dsiDestroyArr( deinitElts: bool) + + .. method:: proc theData ref + + .. itermethod:: iter these( tasksPerLocale: int = dataParTasksPerLocale, ignoreRunning: bool = dataParIgnoreRunningTasks, minIndicesPerTask: int = dataParMinGranularity) ref + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis, tasksPerLocale = dataParTasksPerLocale, ignoreRunning = dataParIgnoreRunningTasks, minIndicesPerTask = dataParMinGranularity) ref where tag == iterKind.follower + + .. method:: proc computeFactoredOffs() + + .. method:: proc initShiftedData() + + .. method:: proc setupFieldsAndAllocate(param initElts) + + .. method:: proc getDataIndex(ind: idxType ...1, param getShifted = true) where rank == 1 + + .. method:: proc getDataIndex( ind: rank*idxType, param getShifted = true) + + .. method:: proc dsiAccess(ind: idxType ...1) ref where rank == 1 + + .. method:: proc dsiAccess(ind: idxType ...1) where rank == 1 && shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(ind: idxType ...1) const ref where rank == 1 + + .. method:: proc dsiAccess(const in ind: rank*idxType) ref + + .. method:: proc dsiAccess(const in ind: rank*idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess(const in ind: rank*idxType) const ref + + .. method:: proc dsiBoundsCheck( i) + + .. method:: proc adjustBlkOffStrForNewDomain( d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr)) + + .. method:: proc adjustBlkOffStrForNewDomain( d: unmanaged(DefaultRectangularDom), alias: unmanaged(DefaultRectangularArr)) where dom.hasUnitStride() && this.hasUnitStride() + + .. method:: override proc dsiReallocate( bounds: rank*range(idxType, boundKind.both, strides)) + + .. method:: override proc dsiPostReallocate() + + .. method:: proc dsiLocalSlice( ranges) + + .. method:: proc dsiGetRAD() + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. itermethod:: iter dsiLocalSubdomains( loc: locale) + + .. method:: override proc dsiIteratorYieldsLocalElements() param + +.. iterfunction:: iter chpl__serialViewIter1D( arr, viewRange) ref where chpl__isDROrDRView(arr) + +.. iterfunction:: iter chpl__serialViewIter( arr, viewDom) ref where chpl__isDROrDRView(arr) + +.. iterfunction:: iter chpl__serialViewIter( arr, viewDom) ref + +.. iterfunction:: iter chpl__serialViewIterHelper( arr, viewDom) ref + +.. method:: proc DefaultRectangularDom.dsiSerialReadWrite( f) throws + +.. method:: proc DefaultRectangularDom.dsiSerialWrite( f) throws where _supportsSerializers(f) && !isDefaultSerializerType(f.serializerType) + +.. method:: proc DefaultRectangularDom.dsiSerialRead( f) throws where _supportsSerializers(f) && f.deserializerType != IO.defaultDeserializer + +.. method:: proc DefaultRectangularDom.doiToString() + +.. method:: proc DefaultRectangularDom.dsiSerialWrite( f) throws + +.. method:: proc DefaultRectangularDom.dsiSerialRead( f) throws + +.. method:: proc DefaultRectangularArr.dsiSerialReadWrite( f) throws + +.. method:: override proc DefaultRectangularDom.dsiSupportsAutoLocalAccess() param + +.. function:: proc chpl_serialReadWriteRectangular( f, arr) throws + +.. function:: proc chpl_serialReadWriteRectangular( f, arr, dom) throws + +.. function:: proc _supportsBulkElements( f, arr) param: bool + +.. function:: proc _supportsSerializers( f) param: bool + +.. function:: proc chpl_serialReadWriteRectangularHelper( f, arr, dom) throws where _supportsSerializers(f) + +.. function:: proc chpl_serialReadWriteRectangularHelper( f, arr, dom) throws + +.. method:: proc DefaultRectangularArr.dsiSerialWrite( f) throws + +.. method:: proc DefaultRectangularArr.dsiSerialRead( f) throws + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom: domain) + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom: range) + +.. method:: proc DefaultRectangularArr.isDataContiguous( dom) + +.. method:: override proc DefaultRectangularArr.doiCanBulkTransferRankChange() param + +.. method:: proc DefaultRectangularArr.doiBulkTransferToKnown( srcDom, destClass: DefaultRectangularArr, destDom) : bool + +.. method:: proc DefaultRectangularArr.doiBulkTransferFromKnown( destDom, srcClass: DefaultRectangularArr, srcDom) : bool + +.. method:: override proc DefaultRectangularArr.isDefaultRectangular() param + +.. method:: override proc type DefaultRectangularArr.isDefaultRectangular() param + +.. data:: config param debugDRScan = false + +.. method:: proc DefaultRectangularArr.doiScan( op, dom) where rank == 1 && chpl__scanStateResTypesMatch(op) + + This computes a 1D scan in parallel on the array, for 1D arrays only + +.. method:: proc DefaultRectangularArr.doiOptimizedSwap( other: this.type) + +.. method:: proc DefaultRectangularArr.doiOptimizedSwap( other) where debugOptimizedSwap + +.. method:: proc DefaultRectangularArr.chpl__preScan( op, ref res: [] ?resType, dom) + +.. method:: proc DefaultRectangularArr.chpl__postScan( op, ref res, numTasks, rngs, state) + diff --git a/docs/internal/source/modules/internal/DefaultSparse.rst b/docs/internal/source/modules/internal/DefaultSparse.rst new file mode 100644 index 000000000..0d2cc3c2e --- /dev/null +++ b/docs/internal/source/modules/internal/DefaultSparse.rst @@ -0,0 +1,128 @@ +.. default-domain:: chpl + +.. module:: DefaultSparse + :noindex: + +DefaultSparse +============= +**Usage** + +.. code-block:: chapel + + use DefaultSparse; + + +or + +.. code-block:: chapel + + import DefaultSparse; + +.. data:: config param debugDefaultSparse = false + +.. data:: config param defaultSparseSupportsAutoLocalAccess = true + +.. class:: DefaultSparseDom : BaseSparseDomImpl(?) + + .. attribute:: var dist: unmanaged(DefaultDist) + + .. attribute:: var _nnz = 0 + + .. attribute:: var _indices: [nnzDom] index(rank, idxType) + + .. method:: override proc linksDistribution() param + + .. method:: override proc dsiLinksDistribution() + + .. method:: proc init(param rank, type idxType, dist: unmanaged(DefaultDist), parentDom: domain) + + .. method:: override proc getNNZ() : int + + .. method:: proc dsiBuildArray(type eltType, param initElts: bool) + + .. itermethod:: iter dsiIndsIterSafeForRemoving() + + .. itermethod:: iter these() + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis: (?, ?, ?)) where tag == iterKind.follower + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc find( ind) + + .. method:: proc dsiMember( ind) + + .. method:: proc parSafe param + + .. method:: override proc dsiFirst + + .. method:: override proc dsiLast + + .. method:: proc add_help( ind) + + .. method:: proc rem_help( ind) + + .. method:: proc dsiAdd( ind: idxType) where rank == 1 + + .. method:: proc dsiRemove( ind: idxType) where rank == 1 + + .. method:: proc dsiAdd( ind: rank*idxType) + + .. method:: proc dsiRemove( ind: rank*idxType) + + .. method:: override proc bulkAdd_help(ref inds: [?indsDom] index(rank, idxType), dataSorted = false, isUnique = false, addOn = nilLocale) + + .. method:: override proc dsiMyDist() : unmanaged(BaseDist) + + .. method:: override proc dsiClear() + + .. itermethod:: iter dimIter(param d, ind) + + .. method:: proc dsiAssignDomain( rhs: domain, lhsPrivate: bool) + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: override proc dsiSupportsAutoLocalAccess() param + +.. class:: DefaultSparseArr : BaseSparseArrImpl(?) + + .. method:: proc init(type eltType, param rank: int, type idxType, dom, param initElts: bool) + + .. method:: proc dsiAccess( ind: rank*idxType) ref + + .. method:: proc dsiAccess( ind: rank*idxType) where shouldReturnRvalueByValue(eltType) + + .. method:: proc dsiAccess( ind: rank*idxType) const ref + + .. itermethod:: iter these() ref + + .. itermethod:: iter these(param tag: iterKind) ref where tag == iterKind.standalone + + .. itermethod:: iter these(param tag: iterKind) where tag == iterKind.leader + + .. itermethod:: iter these(param tag: iterKind, followThis: (?, ?, ?)) ref where tag == iterKind.follower + + .. itermethod:: iter these(param tag: iterKind, followThis) where tag == iterKind.follower + + .. method:: proc dsiTargetLocales() const ref + + .. method:: proc dsiHasSingleLocalSubdomain() param + + .. method:: proc dsiLocalSubdomain( loc: locale) + + .. method:: proc doiBulkTransferToKnown( srcDom, destClass: this.type, destDom) + + .. method:: proc doiBulkTransferFromKnown( destDom, srcClass: this.type, srcDom) : bool + +.. method:: proc DefaultSparseDom.dsiSerialWrite( f, printBrackets = true) throws + +.. method:: proc DefaultSparseArr.dsiSerialWrite( f) throws + diff --git a/docs/internal/source/modules/internal/ExportWrappers.rst b/docs/internal/source/modules/internal/ExportWrappers.rst new file mode 100644 index 000000000..6956ae6a2 --- /dev/null +++ b/docs/internal/source/modules/internal/ExportWrappers.rst @@ -0,0 +1,66 @@ +.. default-domain:: chpl + +.. module:: ExportWrappers + :noindex: + +ExportWrappers +============== +**Usage** + +.. code-block:: chapel + + use ExportWrappers; + + +or + +.. code-block:: chapel + + import ExportWrappers; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: export proc chpl_libraryModuleLevelSetup() : void + +.. function:: export proc chpl_libraryModuleLevelCleanup() : void + +.. record:: chpl_byte_buffer + + .. attribute:: var isOwned: int(8) + + .. attribute:: var data: c_ptr(c_char) + + .. attribute:: var size: uint(64) + +.. function:: proc chpl_byte_buffer_free( cb: chpl_byte_buffer) + +.. type:: type chpl__exportTypeChplByteBuffer = chpl_byte_buffer + +.. function:: proc chpl__exportRetStringOrBytes(ref val) : chpl_byte_buffer + +.. function:: proc chpl__exportRet(ref val: string, type rt: chpl_byte_buffer) : rt + +.. function:: proc chpl__exportRet(ref val: bytes, type rt: chpl_byte_buffer) : rt + +.. function:: proc chpl__exportArg( cp: bool, val: chpl_byte_buffer, type rt: string) : rt + +.. function:: proc chpl__exportArg( cp: bool, val: chpl_byte_buffer, type rt: bytes) : rt + diff --git a/docs/internal/source/modules/internal/ExternalArray.rst b/docs/internal/source/modules/internal/ExternalArray.rst new file mode 100644 index 000000000..2c4cfa2a1 --- /dev/null +++ b/docs/internal/source/modules/internal/ExternalArray.rst @@ -0,0 +1,68 @@ +.. default-domain:: chpl + +.. module:: ExternalArray + :noindex: + +ExternalArray +============= +**Usage** + +.. code-block:: chapel + + use ExternalArray; + + +or + +.. code-block:: chapel + + import ExternalArray; + +.. record:: chpl_opaque_array + + .. attribute:: var _pid: int + + .. attribute:: var _instance: c_ptr(void) + + .. attribute:: var _unowned: bool + +.. record:: chpl_external_array + + .. attribute:: var elts: c_ptr(void) + + .. attribute:: var num_elts: uint + + .. attribute:: var freer: c_ptr(void) + +.. function:: proc chpl_make_external_array( elt_size: uint, num_elts: uint) : chpl_external_array + +.. function:: proc chpl_make_external_array_ptr( elts: c_ptr(void), num_elts: uint) : chpl_external_array + +.. function:: proc chpl_make_external_array_ptr_free( elts: c_ptr(void), num_elts: uint) : chpl_external_array + +.. function:: proc chpl_free_external_array(in x: chpl_external_array) + +.. function:: proc chpl_call_free_func( func: c_ptr(void), elts: c_ptr(void)) + +.. function:: proc makeArrayFromPtr( value: c_ptr, num_elts: uint) + +.. function:: proc makeArrayFromPtr( value: c_ptr, dom: domain) + +.. function:: proc makeArrayFromExternArray( value: chpl_external_array, type eltType) + +.. function:: proc makeArrayFromExternArray( value: chpl_external_array, type eltType, dom: domain) where dom.isRectangular() + +.. function:: proc makeArrayFromOpaque( value: chpl_opaque_array, type arrType) + +.. function:: proc convertStringOrBytes(ref arr: []) : chpl_external_array where arr.eltType == string || arr.eltType == bytes + +.. function:: proc convertToExternalArray(in arr: []) : chpl_external_array where getExternalArrayType(arr) == chpl_external_array + +.. function:: proc convertToExternalArray(ref arr: []) : chpl_opaque_array where getExternalArrayType(arr) == chpl_opaque_array + +.. function:: proc getExternalArrayType( arg) type + +.. function:: proc getExternalArrayType(type arg) type + +.. function:: export proc cleanupOpaqueArray(const ref arr: chpl_opaque_array) + diff --git a/docs/internal/source/modules/internal/ISO_Fortran_binding.rst b/docs/internal/source/modules/internal/ISO_Fortran_binding.rst new file mode 100644 index 000000000..2a41fa743 --- /dev/null +++ b/docs/internal/source/modules/internal/ISO_Fortran_binding.rst @@ -0,0 +1,198 @@ +.. default-domain:: chpl + +.. module:: ISO_Fortran_binding + :noindex: + +ISO_Fortran_binding +=================== +**Usage** + +.. code-block:: chapel + + use ISO_Fortran_binding; + + +or + +.. code-block:: chapel + + import ISO_Fortran_binding; + +.. data:: const CFI_attribute_pointer: int + +.. data:: const CFI_attribute_allocatable: int + +.. data:: const CFI_attribute_other: int + +.. data:: const CFI__max_attribute: int + +.. data:: const CFI_type_int8_t: int + +.. data:: const CFI_type_int16_t: int + +.. data:: const CFI_type_int32_t: int + +.. data:: const CFI_type_int64_t: int + +.. data:: const CFI_type_signed_char: int + +.. data:: const CFI_type_short: int + +.. data:: const CFI_type_int: int + +.. data:: const CFI_type_long: int + +.. data:: const CFI_type_long_long: int + +.. data:: const CFI_type_size_t: int + +.. data:: const CFI_type_int_least8_t: int + +.. data:: const CFI_type_int_least16_t: int + +.. data:: const CFI_type_int_least32_t: int + +.. data:: const CFI_type_int_least64_t: int + +.. data:: const CFI_type_int_fast8_t: int + +.. data:: const CFI_type_int_fast16_t: int + +.. data:: const CFI_type_int_fast32_t: int + +.. data:: const CFI_type_int_fast64_t: int + +.. data:: const CFI_type_intmax_t: int + +.. data:: const CFI_type_intptr_t: int + +.. data:: const CFI_type_ptrdiff_t: int + +.. data:: const CFI_type_float: int + +.. data:: const CFI_type_double: int + +.. data:: const CFI_type_long_double: int + +.. data:: const CFI_type_double_Complex: int + +.. data:: const CFI_type_long_double_Complex: int + +.. data:: const CFI_type_Bool: int + +.. data:: const CFI_type_char: int + +.. data:: const CFI_type_cptr: int + +.. data:: const CFI_type_struct: int + +.. data:: const CFI_type_other: int + +.. data:: const CFI__max_type: int + +.. data:: const CFI_SUCCESS: int + +.. data:: const CFI_ERROR_BASE_ADDR_NULL: int + +.. data:: const CFI_ERROR_BASE_ADDR_NOT_NULL: int + +.. data:: const CFI_INVALID_ELEM_LEN: int + +.. data:: const CFI_INVALID_RANK: int + +.. data:: const CFI_INVALID_TYPE: int + +.. data:: const CFI_INVALID_ATTRIBUTE: int + +.. data:: const CFI_INVALID_EXTENT: int + +.. data:: const CFI_INVALID_DESCRIPTOR: int + +.. data:: const CFI_ERROR_MEM_ALLOCATION: int + +.. data:: const CFI_ERROR_OUT_OF_BOUNDS: int + +.. data:: const CFI_MAX_RANK: int + +.. data:: const CFI_VERSION: int + +.. data:: const CFI__VERSION_0001: int + +.. function:: proc CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t)) + +.. function:: proc for_CFI_address(ref dv: CFI_cdesc_t, subscripts: c_ptr(CFI_index_t)) : c_ptr(void) + +.. function:: proc CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int + +.. function:: proc for_CFI_allocate(ref dv: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), elem_len: c_size_t) : c_int + +.. function:: proc CFI_deallocate(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc for_CFI_deallocate(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_establish(ref dv: CFI_cdesc_t, base_addr: c_ptr(void), attribute: CFI_attribute_t, type_arg: CFI_type_t, elem_len: c_size_t, rank: CFI_rank_t, extents: c_ptr(CFI_index_t), version: c_int) : c_int + +.. function:: proc CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc for_CFI_is_contiguous(ref dv: CFI_cdesc_t) : c_int + +.. function:: proc CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_section(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t), upper_bounds: c_ptr(CFI_index_t), strides: c_ptr(CFI_index_t)) : c_int + +.. function:: proc CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int + +.. function:: proc for_CFI_select_part(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, displacement: c_size_t, elem_len: c_size_t) : c_int + +.. function:: proc CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int + +.. function:: proc for_CFI_setpointer(ref result: CFI_cdesc_t, ref source: CFI_cdesc_t, lower_bounds: c_ptr(CFI_index_t)) : c_int + +.. type:: type CFI_attribute_t = c_ptrdiff + +.. record:: CFI_cdesc_t + + .. attribute:: var base_addr: c_ptr(void) + + .. attribute:: var elem_len: c_size_t + + .. attribute:: var version: c_int + + .. attribute:: var attribute: CFI_attribute_t + + .. attribute:: var rank: CFI_rank_t + + .. attribute:: var ctype: CFI_type_t + + .. attribute:: var dim: c_ptr(CFI_dim_t) + +.. record:: CFI_dim_t + + + extern record CFI_CDESC_T { + param r: int; + var base_addr: c_ptr(void); + var elem_len: c_size_t; + var version: c_int; + var attribute: CFI_attribute_t; + var rank: CFI_rank_t; + //var type: CFI_type_t; + var dim: [0..#r] CFI_dim_t; + } + + .. attribute:: var extent: CFI_index_t + + .. attribute:: var sm: CFI_index_t + + .. attribute:: var lower_bound: CFI_index_t + +.. type:: type CFI_index_t = c_ptrdiff + +.. type:: type CFI_rank_t = c_ptrdiff + +.. type:: type CFI_type_t = c_ptrdiff + +.. function:: proc makeArrayFromFortranArray(ref FA: CFI_cdesc_t, type eltType, param rank = 1) + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpAPU.rst b/docs/internal/source/modules/internal/LocaleModelHelpAPU.rst new file mode 100644 index 000000000..bd651a152 --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpAPU.rst @@ -0,0 +1,57 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpAPU + :noindex: + +LocaleModelHelpAPU +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpAPU; + + +or + +.. code-block:: chapel + + import LocaleModelHelpAPU; + + +* Copyright 2017 Advanced Micro Devices, Inc. +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = true + +.. data:: param localeModelPartitionsIterationOnSublocales = true + +.. data:: config param debugAPULocale = false + +.. function:: proc chpl_getSubloc() + +.. function:: proc chpl_task_setSubloc( subloc: int(32)) + +.. function:: export proc chpl_doDirectExecuteOn(const ref loc: chpl_localeID_t) : bool + +.. function:: export proc chpl_executeOn(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnFast(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnNB(const ref loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpFlat.rst b/docs/internal/source/modules/internal/LocaleModelHelpFlat.rst new file mode 100644 index 000000000..3bd81e74b --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpFlat.rst @@ -0,0 +1,52 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpFlat + :noindex: + +LocaleModelHelpFlat +=================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpFlat; + + +or + +.. code-block:: chapel + + import LocaleModelHelpFlat; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = false + +.. data:: param localeModelPartitionsIterationOnSublocales = false + +.. function:: export proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool + +.. function:: export proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: export proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpGPU.rst b/docs/internal/source/modules/internal/LocaleModelHelpGPU.rst new file mode 100644 index 000000000..21fea151a --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpGPU.rst @@ -0,0 +1,56 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpGPU + :noindex: + +LocaleModelHelpGPU +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpGPU; + + +or + +.. code-block:: chapel + + import LocaleModelHelpGPU; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. data:: param localeModelHasSublocales = true + +.. data:: param localeModelPartitionsIterationOnSublocales = false + +.. data:: config param debugGPULocale = false + +.. function:: proc chpl_getSubloc() + +.. function:: proc chpl_task_setSubloc( subloc: int(32)) + +.. function:: proc chpl_doDirectExecuteOn(in loc: chpl_localeID_t) : bool + +.. function:: proc chpl_executeOn(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_executeOnFast(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_executeOnNB(in loc: chpl_localeID_t, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpMem.rst b/docs/internal/source/modules/internal/LocaleModelHelpMem.rst new file mode 100644 index 000000000..95cc4d0e6 --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpMem.rst @@ -0,0 +1,34 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpMem + :noindex: + +LocaleModelHelpMem +================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpMem; + + +or + +.. code-block:: chapel + + import LocaleModelHelpMem; + +.. function:: proc chpl_here_alloc( size: int(64), md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_alloc( size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_aligned_alloc( alignment: integral, size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_calloc( size: integral, number: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_realloc( ptr: c_ptr(void), size: integral, md: chpl_mem_descInt_t) : c_ptr(void) + +.. function:: proc chpl_here_good_alloc_size( min_size: integral) : min_size.type + +.. function:: proc chpl_here_free( ptr: c_ptr(void)) : void + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpRuntime.rst b/docs/internal/source/modules/internal/LocaleModelHelpRuntime.rst new file mode 100644 index 000000000..ac7cd8ec3 --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpRuntime.rst @@ -0,0 +1,70 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpRuntime + :noindex: + +LocaleModelHelpRuntime +====================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpRuntime; + + +or + +.. code-block:: chapel + + import LocaleModelHelpRuntime; + +.. record:: chpl_localeID_t + +.. record:: chpl_comm_on_bundle_t + +.. record:: chpl_task_bundle_t + +.. type:: type chpl_comm_on_bundle_p + +.. type:: type chpl_task_bundle_p + +.. function:: proc chpl_comm_on_bundle_task_bundle( bundle: chpl_comm_on_bundle_p) : chpl_task_bundle_p + +.. function:: proc chpl_rt_buildLocaleID( node: chpl_nodeID_t, subloc: chpl_sublocID_t) : chpl_localeID_t + +.. function:: proc chpl_rt_nodeFromLocaleID(in loc: chpl_localeID_t) : chpl_nodeID_t + +.. function:: proc chpl_rt_sublocFromLocaleID(in loc: chpl_localeID_t) : chpl_sublocID_t + +.. function:: proc chpl_buildLocaleID( node: chpl_nodeID_t, subloc: chpl_sublocID_t) + +.. function:: proc chpl_nodeFromLocaleID(in loc: chpl_localeID_t) + +.. function:: proc chpl_sublocFromLocaleID(in loc: chpl_localeID_t) + +.. function:: proc chpl_comm_execute_on( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, arg_size: c_size_t) + +.. function:: proc chpl_comm_execute_on_fast( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_comm_execute_on_nb( loc_id: int, subloc_id: int, fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_comm_taskCallFTable( fn: int, args: chpl_comm_on_bundle_p, args_size: c_size_t, subloc_id: int) : void + +.. function:: proc chpl_ftable_call( fn: int, args: chpl_comm_on_bundle_p) : void + +.. function:: proc chpl_ftable_call( fn: int, args: chpl_task_bundle_p) : void + +.. function:: proc chpl_task_addTask( fn: int, args: chpl_task_bundle_p, args_size: c_size_t, subloc_id: int) + +.. function:: proc chpl_task_yield() + + .. warning:: + + 'chpl_task_yield' is deprecated, please use 'currentTask.yieldExecution' instead + +.. function:: proc chpl_taskAddBegin( subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t) + +.. function:: proc chpl_taskAddCoStmt( subloc_id: int, fn: int, args: chpl_task_bundle_p, args_size: c_size_t) + +.. function:: proc chpl__initCopy( initial: chpl_localeID_t, definedConst: bool) : chpl_localeID_t + diff --git a/docs/internal/source/modules/internal/LocaleModelHelpSetup.rst b/docs/internal/source/modules/internal/LocaleModelHelpSetup.rst new file mode 100644 index 000000000..158577295 --- /dev/null +++ b/docs/internal/source/modules/internal/LocaleModelHelpSetup.rst @@ -0,0 +1,60 @@ +.. default-domain:: chpl + +.. module:: LocaleModelHelpSetup + :noindex: + +LocaleModelHelpSetup +==================== +**Usage** + +.. code-block:: chapel + + use LocaleModelHelpSetup; + + +or + +.. code-block:: chapel + + import LocaleModelHelpSetup; + +.. data:: config param debugLocaleModel = false + +.. function:: proc chpl_nodeID : chpl_nodeID_t + +.. record:: chpl_root_locale_accum + + .. attribute:: var nPUsPhysAcc: atomic(int) + + .. attribute:: var nPUsPhysAll: atomic(int) + + .. attribute:: var nPUsLogAcc: atomic(int) + + .. attribute:: var nPUsLogAll: atomic(int) + + .. attribute:: var maxTaskPar: atomic(int) + + .. method:: proc init() + + .. method:: proc init=( other: chpl_root_locale_accum) + + .. method:: proc ref accum( loc: locale) + + .. method:: proc setRootLocaleValues( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleFlat( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleNUMA( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleAPU( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupRootLocaleGPU( dst: borrowed(RootLocale)) + +.. function:: proc helpSetupLocaleFlat( dst: borrowed(LocaleModel), out local_name: string) + +.. function:: proc helpSetupLocaleNUMA( dst: borrowed(LocaleModel), out local_name: string, numSublocales, type NumaDomain) + +.. function:: proc helpSetupLocaleAPU( dst: borrowed(LocaleModel), out local_name: string, out numSublocales, type CPULocale, type GPULocale) + +.. function:: proc helpSetupLocaleGPU( dst: borrowed(LocaleModel), out local_name: string, numSublocales: int, type GPULocale) + diff --git a/docs/internal/source/modules/internal/LocalesArray.rst b/docs/internal/source/modules/internal/LocalesArray.rst new file mode 100644 index 000000000..4ba03346b --- /dev/null +++ b/docs/internal/source/modules/internal/LocalesArray.rst @@ -0,0 +1,24 @@ +.. default-domain:: chpl + +.. module:: LocalesArray + :noindex: + +LocalesArray +============ +**Usage** + +.. code-block:: chapel + + use LocalesArray; + + +or + +.. code-block:: chapel + + import LocalesArray; + +.. data:: const ref Locales = (rootLocale._instance: borrowed(RootLocale?))!.getDefaultLocaleArray() + +.. data:: const LocaleSpace = Locales.domain + diff --git a/docs/internal/source/modules/internal/MemConsistency.rst b/docs/internal/source/modules/internal/MemConsistency.rst new file mode 100644 index 000000000..724546858 --- /dev/null +++ b/docs/internal/source/modules/internal/MemConsistency.rst @@ -0,0 +1,96 @@ +.. default-domain:: chpl + +.. module:: MemConsistency + :noindex: + +MemConsistency +============== +**Usage** + +.. code-block:: chapel + + use MemConsistency; + + +or + +.. code-block:: chapel + + import MemConsistency; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. type:: type memory_order + +.. function:: proc _defaultOf(type t: memory_order) + +.. method:: operator memory_order.==( a: memory_order, b: memory_order) : bool + +.. method:: operator memory_order.!=( a: memory_order, b: memory_order) : bool + +.. method:: operator memory_order. = (ref lhs: memory_order, rhs: memory_order) + +.. method:: proc memory_order.serialize( writer, ref serializer) throws + +.. data:: const memory_order_relaxed: memory_order + +.. data:: const memory_order_consume: memory_order + +.. data:: const memory_order_acquire: memory_order + +.. data:: const memory_order_release: memory_order + +.. data:: const memory_order_acq_rel: memory_order + +.. data:: const memory_order_seq_cst: memory_order + +.. enum:: enum memoryOrder { seqCst, acqRel, release, acquire, relaxed } + + .. enumconstant:: enum constant seqCst + + .. enumconstant:: enum constant acqRel + + .. enumconstant:: enum constant release + + .. enumconstant:: enum constant acquire + + .. enumconstant:: enum constant relaxed + +.. function:: proc readableOrder(param order: memoryOrder) param + +.. function:: proc c_memory_order(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_release() + +.. function:: proc chpl_rmem_consist_acquire() + +.. function:: proc chpl_rmem_consist_maybe_release( order: memory_order) + +.. function:: proc chpl_rmem_consist_maybe_release(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_maybe_acquire( order: memory_order) + +.. function:: proc chpl_rmem_consist_maybe_acquire(param order: memoryOrder) + +.. function:: proc chpl_rmem_consist_fence( order: memory_order) + +.. function:: proc chpl_rmem_consist_fence(param order: memoryOrder) + diff --git a/docs/internal/source/modules/internal/MemTracking.rst b/docs/internal/source/modules/internal/MemTracking.rst new file mode 100644 index 000000000..a669f082c --- /dev/null +++ b/docs/internal/source/modules/internal/MemTracking.rst @@ -0,0 +1,94 @@ +.. default-domain:: chpl + +.. module:: MemTracking + :noindex: + +MemTracking +=========== +**Usage** + +.. code-block:: chapel + + use MemTracking; + + +or + +.. code-block:: chapel + + import MemTracking; + +.. data:: config const memTrack: bool = false + + .. warning:: + + The variable 'memTrack' is unstable and its interface is subject to change in the future + +.. data:: config const memStats: bool = false + + .. warning:: + + The variable 'memStats' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksByType: bool = false + + .. warning:: + + The variable 'memLeaksByType' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaks: bool = false + + .. warning:: + + The variable 'memLeaks' is unstable and its interface is subject to change in the future + +.. data:: config const memMax: uint = 0 + + .. warning:: + + The variable 'memMax' is unstable and its interface is subject to change in the future + +.. data:: config const memThreshold: uint = 0 + + .. warning:: + + The variable 'memThreshold' is unstable and its interface is subject to change in the future + +.. data:: config const memLog: string + + .. warning:: + + The variable 'memLog' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksLog: string + + .. warning:: + + The variable 'memLeaksLog' is unstable and its interface is subject to change in the future + +.. data:: config const memLeaksByDesc: string + + .. warning:: + + The variable 'memLeaksByDesc' is unstable and its interface is subject to change in the future + + Causes the contents of the memory tracking array to be printed at the end + of the program. + Entries remaining in the memory tracking array represent leaked memory, + because they are tracked allocations with no corresponding free. + + The dump is performed only if the --memLeaksByDesc option is present and has + a string argument. + --memLeaksByDesc="" causes all memory records to be printed. Same as --memLeaks. + --memLeaksByDesc="" causes only those memory records + matching the given to be printed. + For example, --memLeaksByDesc="string copy data" causes only string copy + data leaks to be printed. + + +.. data:: const cMemMax = memMax.safeCast(c_size_t) + +.. data:: const cMemThreshold = memThreshold.safeCast(c_size_t) + +.. function:: export proc chpl_memTracking_returnConfigVals(ref ret_memTrack: bool, ref ret_memStats: bool, ref ret_memLeaksByType: bool, ref ret_memLeaksByDesc: c_ptrConst(c_char), ref ret_memLeaks: bool, ref ret_memMax: c_size_t, ref ret_memThreshold: c_size_t, ref ret_memLog: c_ptrConst(c_char), ref ret_memLeaksLog: c_ptrConst(c_char)) + diff --git a/docs/internal/source/modules/internal/NetworkAtomicTypes.rst b/docs/internal/source/modules/internal/NetworkAtomicTypes.rst new file mode 100644 index 000000000..3b16e90c9 --- /dev/null +++ b/docs/internal/source/modules/internal/NetworkAtomicTypes.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: NetworkAtomicTypes + :noindex: + +NetworkAtomicTypes +================== +**Usage** + +.. code-block:: chapel + + use NetworkAtomicTypes; + + +or + +.. code-block:: chapel + + import NetworkAtomicTypes; + diff --git a/docs/internal/source/modules/internal/NetworkAtomics.rst b/docs/internal/source/modules/internal/NetworkAtomics.rst new file mode 100644 index 000000000..49d4c76cd --- /dev/null +++ b/docs/internal/source/modules/internal/NetworkAtomics.rst @@ -0,0 +1,34 @@ +.. default-domain:: chpl + +.. module:: NetworkAtomics + :noindex: + +NetworkAtomics +============== +**Usage** + +.. code-block:: chapel + + use NetworkAtomics; + + +or + +.. code-block:: chapel + + import NetworkAtomics; + +.. record:: RAtomicBool : writeSerializable + + .. method:: proc type valType type + + .. method:: proc valType type + + .. attribute:: var _v: int(64) + +.. record:: RAtomicT : writeSerializable + + .. attribute:: type valType + + .. attribute:: var _v: valType + diff --git a/docs/internal/source/modules/internal/OwnedObject.rst b/docs/internal/source/modules/internal/OwnedObject.rst new file mode 100644 index 000000000..d1dbba112 --- /dev/null +++ b/docs/internal/source/modules/internal/OwnedObject.rst @@ -0,0 +1,150 @@ +.. default-domain:: chpl + +.. module:: OwnedObject + :noindex: + +OwnedObject +=========== +**Usage** + +.. code-block:: chapel + + use OwnedObject; + + +or + +.. code-block:: chapel + + import OwnedObject; + + + +.. record:: _owned : writeSerializable, readDeserializable + + + :type:`owned` manages the deletion of a class instance assuming + that this :type:`owned` is the only thing responsible for + managing the lifetime of the class instance. + + + .. attribute:: type chpl_t + + .. attribute:: var chpl_p: __primitive("to nilable class", chpl_t) + +.. method:: proc _owned.init(type chpl_t) + +.. method:: proc _owned.init( p: borrowed) + +.. method:: proc _owned.init( p: unmanaged) + +.. method:: proc _owned.init( p: ?T) where isClass(T) == false && isSubtype(T, _owned) == false && isIterator(p) == false + +.. method:: proc _owned.init=(ref src: _owned) + + + Copy-initializer. Creates a new :type:`owned` that takes over ownership + from `src`. `src` will refer to `nil` after this call. + + +.. method:: proc _owned.init=( src: shared) + +.. method:: proc _owned.init=( src: borrowed) + +.. method:: proc _owned.init=( src: unmanaged) + +.. method:: proc _owned.init=( src: _nilType) + +.. method:: proc _owned.init(ref src: _owned) + +.. method:: proc type _owned.adopt( source) + +.. method:: proc type _owned.adopt(in obj: unmanaged) + + + Starts managing the argument class instance `obj` + using the `owned` memory management strategy. + The result type preserves nilability of the argument type. + + It is an error to directly delete the class instance + after passing it to `owned.adopt()`. + + +.. method:: proc type _owned.release( source) + +.. method:: proc type _owned.release(ref obj: owned) + + + Empty `obj` so that it manages `nil` and + return the instance previously managed by this owned object. + + If the argument is `nil` it returns `nil`. + + +.. method:: proc _owned.deinit() + + + The deinitializer for :type:`owned` will destroy the class + instance it manages when the :type:`owned` goes out of scope. + + +.. method:: proc _owned.borrow() + + + Return the object managed by this :type:`owned` without impacting its + lifetime at all. It is an error to use the value returned by this function + after the :type:`owned` goes out of scope or deletes the contained class + instance for another reason, such as with `=` or :proc:`owned.adopt`. In some + cases such errors are caught at compile-time. + + +.. function:: operator = (ref lhs: _owned, ref rhs: _owned) where !(isNonNilableClass(lhs) && isNilableClass(rhs)) + + + Assignment between two :type:`owned` transfers ownership of the object + managed by ``rhs`` to ``lhs``. This is done by setting ``rhs`` to `nil` and + then setting ``lhs`` to point to the object that ``rhs`` managed before, + if any. After that, it deletes the object previously managed by ``lhs``, + if any. + + +.. function:: operator = (ref lhs: _owned, rhs: _nilType) + +.. function:: operator <=>(ref lhs: _owned, ref rhs: lhs.type) + + + Swap two :type:`owned` objects. + + +.. function:: proc chpl__initCopy(ref src: _owned, definedConst: bool) + +.. function:: proc chpl__autoCopy(ref src: _owned, definedConst: bool) + +.. function:: proc chpl__autoDestroy(ref x: _owned) + +.. method:: proc _owned.serialize( writer, ref serializer) throws + +.. method:: proc _owned._readWriteHelper( f) throws + +.. method:: proc _owned.deserialize( reader, ref deserializer) throws + +.. function:: operator :(in x: owned(class), type t: owned(class?)) where isSubtype(x.chpl_t, _to_nonnil(t.chpl_t)) + +.. function:: operator :(in x: owned(class?), type t: owned(class?)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: owned(class), type t: owned(class)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: owned(class?), type t: owned(class)) throws where isSubtype(_to_nonnil(x.chpl_t), t.chpl_t) + +.. function:: operator :(ref x: owned(class?), type t: owned(class)) throws where isProperSubtype(t.chpl_t, _to_nonnil(x.chpl_t)) + +.. function:: operator :(ref x: owned(class), type t: owned(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(ref x: owned(class?), type t: owned(class?)) where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(ref x: owned(class), type t: owned(class?)) where isProperSubtype(_to_nonnil(t.chpl_t), x.chpl_t) + +.. function:: operator :( x: _nilType, type t: _owned) + +.. function:: proc postfix!(const ref x: _owned) + diff --git a/docs/internal/source/modules/internal/PrintModuleInitOrder.rst b/docs/internal/source/modules/internal/PrintModuleInitOrder.rst new file mode 100644 index 000000000..91e8b192e --- /dev/null +++ b/docs/internal/source/modules/internal/PrintModuleInitOrder.rst @@ -0,0 +1,32 @@ +.. default-domain:: chpl + +.. module:: PrintModuleInitOrder + :noindex: + +PrintModuleInitOrder +==================== +**Usage** + +.. code-block:: chapel + + use PrintModuleInitOrder; + + +or + +.. code-block:: chapel + + import PrintModuleInitOrder; + +.. data:: config const printModuleInitOrder = false + + .. warning:: + + The variable 'printModuleInitOrder' is unstable and its interface is subject to change in the future + +.. data:: var moduleInitLevel = 2: int(32) + +.. function:: proc printModuleInit( s1: chpl_c_string, s2: chpl_c_string, len: int) + +.. function:: proc initPrint() + diff --git a/docs/internal/source/modules/internal/SharedObject.rst b/docs/internal/source/modules/internal/SharedObject.rst new file mode 100644 index 000000000..e385b4822 --- /dev/null +++ b/docs/internal/source/modules/internal/SharedObject.rst @@ -0,0 +1,220 @@ +.. default-domain:: chpl + +.. module:: SharedObject + :noindex: + +SharedObject +============ +**Usage** + +.. code-block:: chapel + + use SharedObject; + + +or + +.. code-block:: chapel + + import SharedObject; + + + +.. class:: ReferenceCount + + .. attribute:: var strongCount: atomic(int) + + .. attribute:: var totalCount: atomic(int) + + .. method:: proc init() + + .. method:: proc retain() + + .. method:: proc releaseStrong() + + .. method:: proc releaseTotal() + + .. method:: proc tryRetainWeak(ref expected: int) + + attempt to atomically increment the strong reference count + + - if the current strong-count does not match 'expected', then 'expected' + is updated to whatever the current value is, and 'false' is returned + - if they do match, the strong-count is incremented, the total-count is + incremented, and 'true' is returned. + + This method is used to safely upgrade a 'weak' to a 'shared' + reference. This is done by calling the method in a while-loop that can + either fail if the expected value drops to zero (i.e., the last 'shared' + was dropped by someone else during the upgrade attempt), or loop until + the value can be incremented safely (s.t. there are no conflicts + between concurrent upgrades) + + + .. method:: proc releaseWeak() + + .. method:: proc incrementWeak() + +.. record:: _shared : writeSerializable, readDeserializable + + + :type:`shared` manages the deletion of a class instance in a way + that supports multiple owners of the class instance. + + This is currently implemented with task-safe reference counting. + + + .. attribute:: type chpl_t + + .. attribute:: var chpl_p: __primitive("to nilable class", chpl_t) + + .. attribute:: var chpl_pn: unmanaged(ReferenceCount?) + +.. method:: proc _shared.init(type chpl_t) + +.. method:: proc _shared.init( p: borrowed) + +.. method:: proc _shared.init( p: unmanaged) + +.. method:: proc _shared.init( p: ?T) where isClass(T) == false && isSubtype(T, _shared) == false && isIterator(p) == false + +.. method:: proc _shared.init(in take: owned) + +.. method:: proc _shared.init( _private: bool, type t, ref src: _shared) + + + Private move-initializer for use in coercions, + only makes sense when `src` was already copied in in intent. + + +.. method:: proc _shared.init( _private: bool, type t, p, pn) + + Private initializer for casts. This one increments the reference + count if the stored pointer is not nil. + +.. method:: proc _shared.init( _private: bool, p: unmanaged, pn) + + + Private initializer for casting from weak to shared. + assumes the shared reference count in 'pn' has already been incremented + + +.. method:: proc _shared.init=(in take: owned) + +.. method:: proc _shared.init=(const ref src: _shared) + + + Copy-initializer. Creates a new :type:`shared` + that refers to the same class instance as `src`. + These will share responsibility for managing the instance. + + +.. method:: proc _shared.init=( src: borrowed) + +.. method:: proc _shared.init=( src: unmanaged) + +.. method:: proc _shared.init=( src: _nilType) + +.. method:: proc ref _shared.doClear() + +.. method:: proc type _shared.adopt( source) + +.. method:: proc type _shared.adopt(in obj: owned) + + + Changes the memory management strategy of the argument from `owned` + to `shared`, taking over the ownership of the argument. + The result type preserves nilability of the argument type. + If the argument is non-nilable, it must be recognized by the compiler + as an expiring value. + + +.. method:: proc type _shared.adopt(in obj: unmanaged) + + + Starts managing the argument class instance `obj` + using the `shared` memory management strategy. + The result type preserves nilability of the argument type. + + It is an error to directly delete the class instance + after passing it to `shared.adopt()`. + + +.. method:: proc ref _shared.deinit() + + + The deinitializer for :type:`shared` will destroy the class + instance once there are no longer any copies of this + :type:`shared` that refer to it. + + +.. method:: proc _shared.borrow() + + + Return the object managed by this :type:`shared` without + impacting its lifetime at all. It is an error to use the + value returned by this function after the last :type:`shared` + goes out of scope or deletes the contained class instance + for another reason, including calls to + `=`, or ``shared.retain`` when this is the last :type:`shared` + referring to the instance. + In some cases such errors are caught at compile-time. + + +.. method:: proc _shared.downgrade() + + .. warning:: + + The `weak` type is experimental; expect this method to change in the future. + + Create a :record:`~WeakPointer.weak` reference to this object + +.. function:: operator = (ref lhs: _shared, rhs: _shared) where !(isNonNilableClass(lhs) && isNilableClass(rhs)) + + + Assign one :type:`shared` to another. + Deletes the object managed by ``lhs`` if there are + no other :type:`shared` referring to it. On return, + ``lhs`` will refer to the same object as ``rhs``. + + +.. function:: operator = (ref lhs: _shared, in rhs: owned) + +.. function:: operator = (ref lhs: shared, rhs: _nilType) + +.. function:: operator <=>(ref lhs: _shared, ref rhs: _shared) + + + Swap two :type:`shared` objects. + + +.. function:: proc chpl__autoDestroy(ref x: _shared) + +.. method:: proc ref _shared.deserialize( reader, ref deserializer) throws + +.. method:: proc _shared.serialize( writer, ref serializer) throws + +.. method:: proc _shared._readWriteHelper( f) throws + +.. function:: operator :(const ref x: _shared, type t: borrowed) where isSubtype(t, x.chpl_t) + +.. function:: operator :(in x: shared(class), type t: shared(class?)) where isSubtype(x.chpl_t, t.chpl_t: class) + +.. function:: operator :(in x: shared(class?), type t: shared(class?)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: shared(class), type t: shared(class)) where isSubtype(x.chpl_t, t.chpl_t) + +.. function:: operator :(in x: shared(class?), type t: shared(class)) throws where isSubtype(x.chpl_t: class, t.chpl_t) + +.. function:: operator :(const ref x: shared(class?), type t: shared(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t: class) + +.. function:: operator :(const ref x: shared(class), type t: shared(class)) throws where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(const ref x: shared(class?), type t: shared(class?)) where isProperSubtype(t.chpl_t, x.chpl_t) + +.. function:: operator :(const ref x: shared(class), type t: shared(class?)) where isProperSubtype(t.chpl_t, x.chpl_t: class?) + +.. function:: operator :( x: _nilType, type t: _shared) + +.. function:: proc postfix!( x: _shared) + diff --git a/docs/internal/source/modules/internal/String.rst b/docs/internal/source/modules/internal/String.rst new file mode 100644 index 000000000..3cc1983b2 --- /dev/null +++ b/docs/internal/source/modules/internal/String.rst @@ -0,0 +1,1169 @@ +.. default-domain:: chpl + +.. module:: String + :noindex: + +String +====== +**Usage** + +.. code-block:: chapel + + use String; + + +or + +.. code-block:: chapel + + import String; + +**Submodules** + +.. toctree:: + :maxdepth: 1 + :glob: + + String/* + + +.. type:: string + +supports the following methods: + + +.. data:: config param useCachedNumCodepoints = true + +.. record:: byteIndex : writeSerializable + + .. attribute:: var _bindex: int + + .. method:: proc init() + + .. method:: proc init( i: int) + + .. method:: proc init=( other: byteIndex) + + .. method:: proc init=( i: int) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: operator :( val: byteIndex, type t: string) + +.. record:: codepointIndex : writeSerializable + + .. attribute:: var _cpindex: int + + .. method:: proc init() + + .. method:: proc init( i: int) + + .. method:: proc init=( i: int) + + .. method:: proc init=( cpi: codepointIndex) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: operator :( val: codepointIndex, type t: string) + +.. function:: proc chpl_build_bounded_range( low: byteIndex, high: byteIndex) + +.. function:: proc chpl_build_bounded_range( low: codepointIndex, high: codepointIndex) + +.. function:: proc chpl_build_low_bounded_range( low: byteIndex) + +.. function:: proc chpl_build_low_bounded_range( low: codepointIndex) + +.. function:: proc chpl_build_high_bounded_range( high: byteIndex) + +.. function:: proc chpl_build_high_bounded_range( high: codepointIndex) + +.. function:: proc chpl__rangeStrideType(type idxType: byteIndex) type + +.. function:: proc chpl__rangeStrideType(type idxType: codepointIndex) type + +.. function:: proc chpl__rangeUnsignedType(type idxType: byteIndex) type + +.. function:: proc chpl__rangeUnsignedType(type idxType: codepointIndex) type + +.. function:: proc chpl__idxToInt( i: byteIndex) + +.. function:: proc chpl__idxToInt( i: codepointIndex) + +.. function:: proc chpl__intToIdx(type idxType: byteIndex, i: int) + +.. function:: proc chpl__intToIdx(type idxType: codepointIndex, i: int) + +.. method:: operator byteIndex.>( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.>( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.>( x: byteIndex, y: int) + +.. method:: operator codepointIndex.>( x: codepointIndex, y: int) + +.. method:: operator byteIndex.>( x: int, y: byteIndex) + +.. method:: operator codepointIndex.>( x: int, y: codepointIndex) + +.. method:: operator byteIndex.+( x: byteIndex, y: int) + +.. method:: operator codepointIndex.+( x: codepointIndex, y: int) + +.. method:: operator byteIndex.+( x: int, y: byteIndex) + +.. method:: operator codepointIndex.+( x: int, y: codepointIndex) + +.. function:: operator +( x: bufferType, y: byteIndex) + +.. method:: operator byteIndex.-( x: byteIndex, y: int) + +.. method:: operator codepointIndex.-( x: codepointIndex, y: int) + +.. method:: operator byteIndex.-( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.-( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.<( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<( x: byteIndex, y: int) + +.. method:: operator codepointIndex.<( x: codepointIndex, y: int) + +.. method:: operator byteIndex.<( x: int, y: byteIndex) + +.. method:: operator codepointIndex.<( x: int, y: codepointIndex) + +.. method:: operator byteIndex.>=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.>=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.>=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.>=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.>=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.>=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.<=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.<=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.<=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.<=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.<=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.<=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.==( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.==( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.==( x: byteIndex, y: int) + +.. method:: operator codepointIndex.==( x: codepointIndex, y: int) + +.. method:: operator byteIndex.==( x: int, y: byteIndex) + +.. method:: operator codepointIndex.==( x: int, y: codepointIndex) + +.. method:: operator byteIndex.!=( x: byteIndex, y: byteIndex) + +.. method:: operator codepointIndex.!=( x: codepointIndex, y: codepointIndex) + +.. method:: operator byteIndex.!=( x: byteIndex, y: int) + +.. method:: operator codepointIndex.!=( x: codepointIndex, y: int) + +.. method:: operator byteIndex.!=( x: int, y: byteIndex) + +.. method:: operator codepointIndex.!=( x: int, y: codepointIndex) + +.. method:: operator byteIndex.!( x: byteIndex) + +.. method:: operator codepointIndex.!( x: codepointIndex) + +.. function:: proc _cond_test( x: byteIndex) + +.. function:: proc _cond_test( x: codepointIndex) + +.. method:: proc type string.createBorrowingBuffer( x: string) : string + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the internal buffer of another string. If + the buffer is freed before the string returned from this function, accessing + it is undefined behavior. + + :arg x: Object to borrow the buffer from + :type x: `string` + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: c_ptr(?t), length = strLen(x)) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptr`. If + the buffer is freed before the :type:`string` returned from this function, accessing + it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: c_ptrConst(?t), length = strLen(x)) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptrConst`. If + the buffer is freed before the :type:`string` returned from this function, accessing + it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. function:: proc chpl_createStringWithLiteral( buffer: chpl_c_string, offset: int, x: chpl_c_string, length: int, numCodepoints: int) : string + +.. method:: proc type string.createBorrowingBuffer( x: c_ptr(?t), length: int, size: int) : string throws + + .. warning:: + + 'createBorrowingBuffer' is unstable and may change in the future + + + Creates a new :type:`string` which borrows the memory allocated for a :class:`~CTypes.c_ptr`. If + the buffer is freed before the :type:`string` returned from this function, + accessing it is undefined behavior. + + :arg x: The buffer to borrow from + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createBorrowingBuffer( x: chpl_c_string, length = x.size) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createBorrowingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type string.createAdoptingBuffer( x: c_ptr(?t), length = strLen(x)) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptr`. The buffer will be freed when the :type:`string` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is + the caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createAdoptingBuffer( x: chpl_c_string, length = x.size) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createAdoptingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. method:: proc type string.createAdoptingBuffer( x: c_ptrConst(?t), length = strLen(x)) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptrConst`. The buffer will be freed when the :type:`string` + is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the optional + terminating null byte. + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is the + caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createAdoptingBuffer( x: c_ptr(?t), length: int, size: int) : string throws + + + Creates a new :type:`string` which takes ownership of the memory allocated for a + :class:`~CTypes.c_ptr`. The buffer will be freed when the :type:`string` is deinitialized. + + :arg x: The buffer to take ownership of + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes + :type length: `int` + + :throws: A :class:`~Errors.DecodeError`: if `x` contains non-UTF-8 + characters. In that event, this function does not free `x`; that is the + caller's responsibility. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: c_ptrConst(?t), length = strLen(x), policy = decodePolicy.strict) : string throws + + + Creates a new :type:`string` by creating a copy of the memory allocated for a :class:`~CTypes.c_ptrConst`. + + :arg x: The buffer to copy + :type x: `c_ptrConst(uint(8))` or `c_ptrConst(int(8))` + + :arg length: Length of `x` in bytes, excluding the optional terminating null byte. + :type length: `int` + + :arg policy: - `decodePolicy.strict` raises an error + - `decodePolicy.replace` replaces the malformed character with + UTF-8 replacement character + - `decodePolicy.drop` drops the data silently + - `decodePolicy.escape` escapes each illegal byte with private + use codepoints + + :throws: A :class:`~Errors.DecodeError`: if `decodePolicy.strict` is + passed to the `policy` argument and `x` contains non-UTF-8 characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: c_ptr(?t), length = strLen(x), size = length + 1, policy = decodePolicy.strict) : string throws + + + Creates a new :type:`string` by creating a copy of a buffer. + + :arg x: The buffer to copy + :type x: `c_ptr(uint(8))` or `c_ptr(int(8))` + + :arg length: Length of the string stored in `x` in bytes, excluding the + optional terminating null byte. + :type length: `int` + + :arg size: Size of memory allocated for `x` in bytes. This argument is + ignored by this function. + :type size: `int` + + :arg policy: `decodePolicy.strict` raises an error, `decodePolicy.replace` + replaces the malformed character with UTF-8 replacement + character, `decodePolicy.drop` drops the data silently, + `decodePolicy.escape` escapes each illegal byte with private + use codepoints + + :throws: A :class:`~Errors.DecodeError`: if `decodePolicy.strict` is + passed to the `policy` argument and `x` contains non-UTF-8 characters. + + :returns: A new :type:`string` + + +.. method:: proc type string.createCopyingBuffer( x: chpl_c_string, length = x.size, policy = decodePolicy.strict) : string throws + + .. warning:: + + the type 'c_string' is deprecated; please use the variant of 'string.createCopyingBuffer' that takes a 'c_ptrConst(c_char)' instead + +.. record:: _string : writeSerializable + + .. attribute:: var buffLen: int = 0 + + .. attribute:: var buffSize: int = 0 + + .. attribute:: var cachedNumCodepoints: int = 0 + + .. attribute:: var buff: bufferType = nil + + .. attribute:: var isOwned: bool = true + + .. attribute:: var hasEscapes: bool = false + + .. attribute:: var locale_id = chpl_nodeID + + .. method:: proc init() + + .. method:: proc init=( s: string) + + .. method:: proc ref deinit() + + .. method:: proc chpl__serialize() + + .. method:: proc type chpl__deserialize( data) + + .. method:: proc isASCII() + + .. method:: proc byteIndices + + .. method:: proc _cpIndexLenHelpNoAdjustment(ref start: int) + + .. itermethod:: iter _cpIndexLen( start = 0: byteIndex) + + + Iterates over the string Unicode character by Unicode character, + and includes the byte index and byte length of each character. + Skip characters that begin prior to the specified starting byte index. + Assume we may accidentally start in the middle of a multibyte character, + but the string is correctly encoded UTF-8. + + + .. itermethod:: iter _indexLen( start = 0: byteIndex) + + + Iterates over the string Unicode character by Unicode character, + and returns the byte index and byte length of each character. + Skip characters that begin prior to the specified starting byte index. + Assume we may accidentally start in the middle of a multibyte character, + but the string is correctly encoded UTF-8. + + + .. method:: proc substring( i: int) + + .. method:: proc substring( r: range) + + .. method:: proc serialize( writer, ref serializer) throws + + .. method:: proc doSplitWSUTF8Help( maxsplit: int, ref i: int, const splitCount: int, const noSplits: bool, const limitSplits: bool, const iEnd: byteIndex) + + .. itermethod:: iter doSplitWSUTF8( maxsplit: int) + + .. method:: proc doSearchUTF8( pattern: string, indices: range(?), param count: bool, param fromLeft: bool = true) + + .. method:: proc join(const ref x: [] string) : string + + .. method:: proc join(const ref x) where isTuple(x) + + .. method:: proc join( ir: _iteratorRecord) : string + + .. method:: proc capitalize() : string + + + :returns: A new :type:`string` with the first character in uppercase (if it is a + case character), and all other case characters in lowercase. + Uncased characters are copied with no changes. + + +.. method:: proc const string.size : int + + + :returns: The number of codepoints in the :type:`string`. + + +.. method:: proc string.indices : range + + + :returns: The indices that can be used to index into the :type:`string` + (i.e., the range ``0.. 0``, remove ``columns`` leading whitespace characters + from each line. Tabs are not considered whitespace when ``columns > 0``, + so only leading spaces are removed. + + :arg columns: The number of columns of indentation to remove. Infer + common leading whitespace if ``columns == 0``. + + :arg ignoreFirst: When ``true``, ignore first line when determining the + common leading whitespace, and make no changes to the + first line. + + :returns: A new :type:`string` with indentation removed. + + +.. method:: proc string.isUpper() : bool + + + Checks if all the characters in the :type:`string` are either uppercase (A-Z) or + uncased (not a letter). + + :returns: * `true` -- if the string contains at least one uppercase character and no lowercase characters, ignoring uncased characters. + * `false` -- otherwise + + +.. method:: proc string.isLower() : bool + + + Checks if all the characters in the :type:`string` are either lowercase (a-z) or + uncased (not a letter). + + :returns: * `true` -- when there are no uppercase characters in the string. + * `false` -- otherwise + + +.. method:: proc string.isSpace() : bool + + + Checks if all the characters in the :type:`string` are whitespace (' ', '\\t', + '\\n', '\\v', '\\f', '\\r'). + + :returns: * `true` -- when all the characters are whitespace. + * `false` -- otherwise + + +.. method:: proc string.isAlpha() : bool + + + Checks if all the characters in the :type:`string` are alphabetic (a-zA-Z). + + :returns: * `true` -- when the characters are alphabetic. + * `false` -- otherwise + + +.. method:: proc string.isDigit() : bool + + + Checks if all the characters in the :type:`string` are digits (0-9). + + :returns: * `true` -- when the characters are digits. + * `false` -- otherwise + + +.. method:: proc string.isAlnum() : bool + + + Checks if all the characters in the :type:`string` are alphanumeric (a-zA-Z0-9). + + :returns: * `true` -- when the characters are alphanumeric. + * `false` -- otherwise + + +.. method:: proc string.isPrintable() : bool + + + Checks if all the characters in the :type:`string` are printable. + + :returns: * `true` -- when the characters are printable. + * `false` -- otherwise + + +.. method:: proc string.isTitle() : bool + + + Checks if all uppercase characters are preceded by uncased characters, + and if all lowercase characters are preceded by cased characters. + + :returns: * `true` -- when the condition described above is met. + * `false` -- otherwise + + +.. method:: proc string.toLower() : string + + + :returns: A new :type:`string` with all uppercase characters replaced with their + lowercase counterpart. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: proc string.toUpper() : string + + + :returns: A new :type:`string` with all lowercase characters replaced with their + uppercase counterpart. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: proc string.toTitle() : string + + + :returns: A new :type:`string` with all cased characters following an uncased + character converted to uppercase, and all cased characters + following another cased character converted to lowercase. + + .. note:: + + The case change operation is not currently performed on characters whose + cases take different number of bytes to represent in Unicode mapping. + + +.. method:: operator byteIndex. = (ref lhs: byteIndex, rhs: int) + + + Copies the int `rhs` into the byteIndex `lhs`. + + +.. method:: operator byteIndex. = (ref lhs: byteIndex, const ref rhs: byteIndex) + +.. method:: operator codepointIndex. = (ref lhs: codepointIndex, rhs: int) + + + Copies the int `rhs` into the codepointIndex `lhs`. + + +.. method:: operator codepointIndex. = (ref lhs: codepointIndex, const ref rhs: codepointIndex) + +.. function:: operator = (ref lhs: string, rhs: string) : void + + + Copies the :type:`string` `rhs` into the :type:`string` `lhs`. + + +.. method:: operator string.+( s0: string, s1: string) : string + + + :returns: A new :type:`string` which is the result of concatenating `s0` and `s1` + + +.. function:: operator *( s: string, n: integral) : string + + + :returns: A new :type:`string` which is the result of repeating `s` `n` times. + If `n` is less than or equal to 0, an empty :type:`string` is returned. + + The operation is commutative. + For example: + + .. code-block:: chapel + + writeln("Hello! " * 3); + or + writeln(3 * "Hello! "); + + Results in:: + + Hello! Hello! Hello! + + +.. function:: operator *( n: integral, s: string) + +.. method:: operator string.==(param s0: string, param s1: string) param + +.. method:: operator string.!=(param s0: string, param s1: string) param + +.. method:: operator string.<=(param a: string, param b: string) param + +.. method:: operator string.>=(param a: string, param b: string) param + +.. method:: operator string.<(param a: string, param b: string) param + +.. method:: operator string.>(param a: string, param b: string) param + +.. method:: operator string.+(param a: string, param b: string) param + +.. method:: proc param string.toByte() param: uint(8) + +.. method:: proc param string.byte(param i: int) param: uint(8) + +.. method:: proc param string.this(param i: int) param: string + +.. method:: proc param string.item(param i: int) param: string + +.. method:: proc param string.numBytes param + +.. method:: proc param string.numCodepoints param + +.. method:: proc param string.size param + +.. function:: proc _string_contains(param a: string, param b: string) param + +.. method:: operator string.+=(ref lhs: string, const ref rhs: string) : void + + + Appends the string `rhs` to the string `lhs`. + + +.. method:: proc ref string.appendCodepointValues(codepoints: int ...) : void + + .. warning:: + + 'string.appendCodepointValues' is unstable and may change in the future + + + Appends the codepoint values passed to the :type:`string` `this`. + + Any argument not in 0..0x10FFFF is not valid Unicode codepoint. + This function will append the replacement character 0xFFFD instead of + such invalid arguments. + + +.. method:: operator string.==( a: string, b: string) : bool + +.. method:: operator string.!=( a: string, b: string) : bool + +.. method:: operator string.<( a: string, b: string) : bool + +.. method:: operator string.>( a: string, b: string) : bool + +.. method:: operator string.<=( a: string, b: string) : bool + +.. method:: operator string.>=( a: string, b: string) : bool + +.. type:: type wint_t = int(32) + +.. function:: proc codepointToString( i: int(32)) : string + + + :returns: A new :type:`string` storing the complete multibyte character sequence + that corresponds to the codepoint value `i`. + + +.. function:: operator :( cs: c_string, type t: string) + + .. warning:: + + the type 'c_string' is deprecated; please use one of the 'string.create*ingBuffer' methods that takes a 'c_ptrConst(c_char)' instead + +.. function:: operator :( cpi: byteIndex, type t: int) + +.. function:: operator :( i: int, type t: byteIndex) + +.. function:: operator :( cpi: codepointIndex, type t: int) + +.. function:: operator :( i: int, type t: codepointIndex) + +.. method:: proc string.hash() : uint + +.. method:: operator string.<=>(ref x: string, ref y: string) + diff --git a/docs/internal/source/modules/internal/String/NVStringFactory.rst b/docs/internal/source/modules/internal/String/NVStringFactory.rst new file mode 100644 index 000000000..70e2475f4 --- /dev/null +++ b/docs/internal/source/modules/internal/String/NVStringFactory.rst @@ -0,0 +1,26 @@ +.. default-domain:: chpl + +.. module:: NVStringFactory + :noindex: + +NVStringFactory +=============== +**Usage** + +.. code-block:: chapel + + use String.NVStringFactory; + + +or + +.. code-block:: chapel + + import String.NVStringFactory; + +.. function:: proc chpl_createStringWithNewBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + +.. function:: proc chpl_createStringWithBorrowedBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + +.. function:: proc chpl_createStringWithOwnedBufferNV( x: bufferType, length: int, size: int, numCodepoints: int) + diff --git a/docs/internal/source/modules/internal/StringCasts.rst b/docs/internal/source/modules/internal/StringCasts.rst new file mode 100644 index 000000000..890deb010 --- /dev/null +++ b/docs/internal/source/modules/internal/StringCasts.rst @@ -0,0 +1,64 @@ +.. default-domain:: chpl + +.. module:: StringCasts + :noindex: + +StringCasts +=========== +**Usage** + +.. code-block:: chapel + + use StringCasts; + + +or + +.. code-block:: chapel + + import StringCasts; + + +* Copyright 2020-2024 Hewlett Packard Enterprise Development LP +* Copyright 2004-2019 Cray Inc. +* Other additional copyright holders may be indicated within. +* +* The entirety of this work is licensed under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. + + +.. function:: operator :( x: bool, type t: string) + +.. function:: operator :( x: string, type t: bool) throws + +.. function:: operator :( x: ?k*?t, type s: string) where isPrimitiveType(t) && isHomogeneousTupleType(x.type) + +.. function:: operator :( x: integral, type t: string) + +.. function:: operator :( x: string, type t: integral) throws + +.. function:: proc _real_cast_helper( x: real(64), param isImag: bool) : string + +.. function:: operator :( x: chpl_anyreal, type t: string) + +.. function:: operator :( x: chpl_anyimag, type t: string) + +.. function:: operator :( x: string, type t: chpl_anyreal) throws + +.. function:: operator :( x: string, type t: chpl_anyimag) throws + +.. function:: operator :( x: chpl_anycomplex, type t: string) + +.. function:: operator :( x: string, type t: chpl_anycomplex) throws + diff --git a/docs/internal/source/modules/internal/startInitCommDiags.rst b/docs/internal/source/modules/internal/startInitCommDiags.rst new file mode 100644 index 000000000..3722fc0e8 --- /dev/null +++ b/docs/internal/source/modules/internal/startInitCommDiags.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: startInitCommDiags + :noindex: + +startInitCommDiags +================== +**Usage** + +.. code-block:: chapel + + use startInitCommDiags; + + +or + +.. code-block:: chapel + + import startInitCommDiags; + diff --git a/docs/internal/source/modules/internal/stopInitCommDiags.rst b/docs/internal/source/modules/internal/stopInitCommDiags.rst new file mode 100644 index 000000000..afb26d565 --- /dev/null +++ b/docs/internal/source/modules/internal/stopInitCommDiags.rst @@ -0,0 +1,20 @@ +.. default-domain:: chpl + +.. module:: stopInitCommDiags + :noindex: + +stopInitCommDiags +================= +**Usage** + +.. code-block:: chapel + + use stopInitCommDiags; + + +or + +.. code-block:: chapel + + import stopInitCommDiags; +