Өзгерту

Бөлісу құралы:


ReadOnlyTensorSpan<T> Struct

Definition

Represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed or native memory, or to memory allocated on the stack. It is type-safe and memory-safe.

generic <typename T>
public value class ReadOnlyTensorSpan
public readonly ref struct ReadOnlyTensorSpan<T>
type ReadOnlyTensorSpan<'T> = struct
Public Structure ReadOnlyTensorSpan(Of T)

Type Parameters

T
Inheritance
ReadOnlyTensorSpan<T>

Constructors

ReadOnlyTensorSpan<T>(Array)

Creates a new ReadOnlyTensorSpan<T> over the provided Array. The new ReadOnlyTensorSpan<T> will have a rank of 1 and a length equal to the length of the provided Array.

ReadOnlyTensorSpan<T>(Array, ReadOnlySpan<Int32>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new ReadOnlyTensorSpan<T> over the provided Array using the specified start offsets, lengths, and strides. If the strides are not provided, they will be automatically calculated.

ReadOnlyTensorSpan<T>(Array, ReadOnlySpan<NIndex>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new ReadOnlyTensorSpan<T> over the provided Array using the specified start offsets, lengths, and strides. If the strides are not provided, they will be automatically calculated.

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>)

Creates a new ReadOnlyTensorSpan<T> over the provided ReadOnlySpan<T>. The new ReadOnlyTensorSpan<T> will have a rank of 1 and a length equal to the length of the provided ReadOnlySpan<T>.

ReadOnlyTensorSpan<T>(ReadOnlySpan<T>, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new ReadOnlyTensorSpan<T> over the provided Span<T> using the specified lengths and strides. If the strides are not provided, they will be automatically calculated.

ReadOnlyTensorSpan<T>(T*, IntPtr)

Creates a new span over the target unmanaged buffer.

ReadOnlyTensorSpan<T>(T*, IntPtr, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new span over the target unmanaged buffer. Clearly this is quite dangerous, because the length is not checked. But if this creation is correct, then all subsequent uses are correct.

ReadOnlyTensorSpan<T>(T[])

Creates a new span over the entirety of the target array.

ReadOnlyTensorSpan<T>(T[], Index, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new span over the portion of the target array beginning at the specified start index and ending at the end index (exclusive).

ReadOnlyTensorSpan<T>(T[], Int32, ReadOnlySpan<IntPtr>, ReadOnlySpan<IntPtr>)

Creates a new span over the portion of the target array beginning at the specified start index and ending at the end index (exclusive).

Properties

Empty

Gets a 0-length read-only span whose base is the null pointer.

FlattenedLength

Gets the number of items in the span.

IsEmpty

Gets a value indicating whether this TensorSpan<T> is empty.

Item[ReadOnlySpan<IntPtr>]

Gets a reference to specified element of the ReadOnlyTensorSpan.

Item[ReadOnlySpan<NIndex>]

Gets a reference to specified element of the ReadOnlyTensorSpan.

Item[ReadOnlySpan<NRange>]

Gets a slice of the ReadOnlyTensorSpan.

Lengths

Gets the length of each dimension in this TensorSpan<T>.

Rank

Gets the rank, or number of dimensions, of this TensorSpan<T>.

Strides

Gets the strides of this TensorSpan<T>.

Methods

CastUp<TDerived>(ReadOnlyTensorSpan<TDerived>)

Casts a read-only span of TDerived to a read-only span of T.

CopyTo(TensorSpan<T>)

Copies the contents of this read-only span into destination span. If the source and destinations overlap, this method behaves as if the original values are in a temporary location before the destination is overwritten.

Equals(Object)
Obsolete.

This method is not supported as spans cannot be boxed. To compare two spans, use operator ==.

FlattenTo(Span<T>)

Flattens the contents of this span into the provided Span<T>.

GetEnumerator()

Gets an enumerator for this span.

GetHashCode()
Obsolete.

This method is not supported as spans cannot be boxed.

GetPinnableReference()

Returns a reference to the 0th element of the ReadOnlyTensorSpan.

Slice(ReadOnlySpan<NIndex>)

Returns a reference to specified element of the TensorSpan.

Slice(ReadOnlySpan<NRange>)

Forms a slice out of the given span.

ToString()

Returns a String with the name of the type and the number of elements.

TryCopyTo(TensorSpan<T>)

Copies the contents of this read-only span into destination span. If the source and destinations overlap, this method behaves as if the original values are in a temporary location before the destination is overwritten.

TryFlattenTo(Span<T>)

Flattens the contents of this span into the provided Span<T>.

Operators

Equality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Compares two System.Numerics.Tensors.ReadOnlyTensorSpan<T> structs for equality.

Implicit(T[] to ReadOnlyTensorSpan<T>)
Inequality(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Compares two System.Numerics.Tensors.ReadOnlyTensorSpan<T> structs for inequality.

Extension Methods

BroadcastTo<T>(ReadOnlyTensorSpan<T>, TensorSpan<T>)

Broadcasts the data from source to destination.

Reshape<T>(ReadOnlyTensorSpan<T>, ReadOnlySpan<IntPtr>)

Reshapes the tensor tensor to the specified lengths. If one of the lengths is -1, it will be calculated automatically. Does not change the length of the underlying memory nor does it allocate new memory. If the new shape is not compatible with the old shape, an exception is thrown.

SequenceEqual<T>(ReadOnlyTensorSpan<T>, ReadOnlyTensorSpan<T>)

Determines whether two sequences are equal by comparing the elements using IEquatable{T}.Equals(T).

Squeeze<T>(ReadOnlyTensorSpan<T>, Int32)
ToString<T>(ReadOnlyTensorSpan<T>, ReadOnlySpan<IntPtr>)

Creates a String representation of the ReadOnlyTensorSpan<T>.

TryBroadcastTo<T>(ReadOnlyTensorSpan<T>, TensorSpan<T>)

Broadcasts the data from tensor to the smallest broadcastable shape compatible with destination and stores it in destination.

Unsqueeze<T>(ReadOnlyTensorSpan<T>, Int32)

Inserts a new dimension of length 1 that will appear at the dimension position.

Applies to