18 instantiations of TensorSpan
System.Numerics.Tensors (18)
System\Numerics\Tensors\netcore\Tensor.cs (11)
33
/// <inheritdoc cref="TensorSpan{T}.
TensorSpan
(T[])" />
35
=> new
TensorSpan
<T>(array);
37
/// <inheritdoc cref="TensorSpan{T}.
TensorSpan
(T[], ReadOnlySpan{nint})" />
39
=> new
TensorSpan
<T>(array, lengths);
41
/// <inheritdoc cref="TensorSpan{T}.
TensorSpan
(T[], ReadOnlySpan{nint} , ReadOnlySpan{nint})" />
43
=> new
TensorSpan
<T>(array, lengths, strides);
45
/// <inheritdoc cref="TensorSpan{T}.
TensorSpan
(T[], int, ReadOnlySpan{nint}, ReadOnlySpan{nint})" />
46
public static TensorSpan<T> AsTensorSpan<T>(this T[]? array, int start, scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides) => new
TensorSpan
<T>(array, start, lengths, strides);
1528
TensorSpan<T> output = new
TensorSpan
<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, strides, tensor.IsPinned);
2039
TensorSpan<T> output = new
TensorSpan
<T>(ref tensor._reference, tensor._shape.LinearLength, lengths[..rank], strides[..rank], tensor.IsPinned);
2481
TensorSpan<T> output = new
TensorSpan
<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, newStrides, tensor.IsPinned);
System\Numerics\Tensors\netcore\Tensor_1.cs (1)
149
public TensorSpan<T> AsTensorSpan() => new
TensorSpan
<T>(ref Unsafe.Add(ref MemoryMarshal.GetArrayDataReference(_values), _start), in _shape);
System\Numerics\Tensors\netcore\TensorDimensionSpan_1.cs (1)
52
return new
TensorSpan
<T>(ref Unsafe.Add(ref _tensor._reference, linearOffset), _sliceShape);
System\Numerics\Tensors\netcore\TensorSpan_1.cs (4)
206
public static implicit operator TensorSpan<T>(T[]? array) => new
TensorSpan
<T>(array);
302
return new
TensorSpan
<T>(
312
return new
TensorSpan
<T>(
322
return new
TensorSpan
<T>(
System\Runtime\InteropServices\TensorMarshal.cs (1)
23
return new
TensorSpan
<T>(ref Unsafe.AsRef(ref data), dataLength, lengths, strides, pinned);
437 references to TensorSpan
System.Numerics.Tensors (437)
System\Numerics\Tensors\netcore\IReadOnlyTensor_1.cs (2)
54
void CopyTo(scoped in
TensorSpan
<T> destination);
117
bool TryCopyTo(scoped in
TensorSpan
<T> destination);
System\Numerics\Tensors\netcore\ITensor_1.cs (4)
70
TensorSpan
<T> AsTensorSpan();
75
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<nint> startIndexes);
78
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<NIndex> startIndexes);
83
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<NRange> ranges);
System\Numerics\Tensors\netcore\ReadOnlyTensorSpan_1.cs (4)
329
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.CopyTo(in
TensorSpan
{T})" />
330
public void CopyTo(scoped in
TensorSpan
<T> destination)
447
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.TryCopyTo(in
TensorSpan
{T})" />
448
public bool TryCopyTo(scoped in
TensorSpan
<T> destination)
System\Numerics\Tensors\netcore\Tensor.cs (338)
33
/// <inheritdoc cref="
TensorSpan
{T}.TensorSpan(T[])" />
34
public static
TensorSpan
<T> AsTensorSpan<T>(this T[]? array)
37
/// <inheritdoc cref="
TensorSpan
{T}.TensorSpan(T[], ReadOnlySpan{nint})" />
38
public static
TensorSpan
<T> AsTensorSpan<T>(this T[]? array, scoped ReadOnlySpan<nint> lengths)
41
/// <inheritdoc cref="
TensorSpan
{T}.TensorSpan(T[], ReadOnlySpan{nint} , ReadOnlySpan{nint})" />
42
public static
TensorSpan
<T> AsTensorSpan<T>(this T[]? array, scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides)
45
/// <inheritdoc cref="
TensorSpan
{T}.TensorSpan(T[], int, ReadOnlySpan{nint}, ReadOnlySpan{nint})" />
46
public static
TensorSpan
<T> AsTensorSpan<T>(this T[]? array, int start, scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides) => new TensorSpan<T>(array, start, lengths, strides);
80
/// <param name="source">Input <see cref="
TensorSpan
{T}"/>.</param>
82
public static void BroadcastTo<T>(this Tensor<T> source, in
TensorSpan
<T> destination)
91
/// <param name="source">Input <see cref="
TensorSpan
{T}"/>.</param>
92
/// <param name="destination">Other <see cref="
TensorSpan
{T}"/> to make shapes broadcastable.</param>
93
public static void BroadcastTo<T>(in this
TensorSpan
<T> source, in
TensorSpan
<T> destination)
102
/// <param name="source">Input <see cref="
TensorSpan
{T}"/>.</param>
104
public static void BroadcastTo<T>(in this ReadOnlyTensorSpan<T> source, in
TensorSpan
<T> destination)
187
public static ref readonly
TensorSpan
<T> Concatenate<T>(scoped ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination)
199
public static ref readonly
TensorSpan
<T> ConcatenateOnDimension<T>(int dimension, scoped ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination)
279
private static void ConcatenateOnDimensionToSpan<T>(int dimension, scoped ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination, Span<T> dstSpan)
379
/// Fills the given <see cref="
TensorSpan
{T}"/> with random data in a Gaussian normal distribution. <see cref="Random"/>
383
/// <param name="destination">The destination <see cref="
TensorSpan
{T}"/> where the data will be stored.</param>
386
public static ref readonly
TensorSpan
<T> FillGaussianNormalDistribution<T>(in
TensorSpan
<T> destination, Random? random = null) where T : IFloatingPoint<T>
403
TensorSpan
<T>.Enumerator enumerator = destination.GetEnumerator();
417
/// Fills the given <see cref="
TensorSpan
{T}"/> with random data in a uniform distribution. <see cref="Random"/>
421
/// <param name="destination">The destination <see cref="
TensorSpan
{T}"/> where the data will be stored.</param>
424
public static ref readonly
TensorSpan
<T> FillUniformDistribution<T>(in
TensorSpan
<T> destination, Random? random = null) where T : IFloatingPoint<T>
438
TensorSpan
<T>.Enumerator enumerator = destination.GetEnumerator();
453
/// before they are compared. It returns a <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not."/>
457
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
468
/// before they are compared. It returns a <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not."/>
473
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
474
public static ref readonly
TensorSpan
<bool> Equals<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
484
/// before they are compared. It returns a <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not."/>
488
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
499
/// before they are compared. It returns a <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not."/>
504
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
505
public static ref readonly
TensorSpan
<bool> Equals<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
581
public static ref readonly
TensorSpan
<T> FilteredUpdate<T>(in this
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<bool> filter, T value)
595
public static ref readonly
TensorSpan
<T> FilteredUpdate<T>(in this
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<bool> filter, scoped in ReadOnlyTensorSpan<T> values)
633
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
668
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
698
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
814
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
849
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
879
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
995
public static ref readonly
TensorSpan
<bool> LessThan<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1030
public static ref readonly
TensorSpan
<bool> LessThan<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
1060
public static ref readonly
TensorSpan
<bool> LessThan<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1176
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1211
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
1241
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1461
/// <param name="tensor"><see cref="
TensorSpan
{T}"/> you want to reshape.</param>
1463
public static
TensorSpan
<T> Reshape<T>(this scoped in
TensorSpan
<T> tensor, scoped ReadOnlySpan<nint> lengths)
1528
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, strides, tensor.IsPinned);
1537
/// <param name="tensor"><see cref="
TensorSpan
{T}"/> you want to reshape.</param>
1656
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1657
public static void ResizeTo<T>(scoped in Tensor<T> tensor, in
TensorSpan
<T> destination)
1666
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1667
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1668
public static void ResizeTo<T>(scoped in
TensorSpan
<T> tensor, in
TensorSpan
<T> destination)
1678
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1679
public static void ResizeTo<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
1698
TensorSpan
<T>.Enumerator dstEnumerator = destination.GetEnumerator();
1741
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1743
public static ref readonly
TensorSpan
<T> Reverse<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
1752
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1755
public static ref readonly
TensorSpan
<T> ReverseDimension<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination, int dimension)
1794
public static bool SequenceEqual<T>(this scoped in
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<T> other)
1854
public static ref readonly
TensorSpan
<T> SetSlice<T>(this in
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<T> values, params scoped ReadOnlySpan<NRange> ranges)
1983
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to remove all dimensions of length 1.</param>
1984
public static
TensorSpan
<T> Squeeze<T>(this scoped in
TensorSpan
<T> tensor)
1993
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to remove dimension of length 1.</param>
1995
public static
TensorSpan
<T> SqueezeDimension<T>(this scoped in
TensorSpan
<T> tensor, int dimension)
2039
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, lengths[..rank], strides[..rank], tensor.IsPinned);
2159
public static ref readonly
TensorSpan
<T> Stack<T>(scoped in ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination)
2170
public static ref readonly
TensorSpan
<T> StackAlongDimension<T>(scoped ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination, int dimension)
2378
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2379
public static bool TryBroadcastTo<T>(this Tensor<T> tensor, in
TensorSpan
<T> destination)
2388
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
2389
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2390
public static bool TryBroadcastTo<T>(in this
TensorSpan
<T> tensor, in
TensorSpan
<T> destination)
2400
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2401
public static bool TryBroadcastTo<T>(in this ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
2453
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to add a dimension of length 1.</param>
2455
public static
TensorSpan
<T> Unsqueeze<T>(this scoped in
TensorSpan
<T> tensor, int dimension)
2481
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, newStrides, tensor.IsPinned);
2540
/// Takes the absolute value of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2542
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the abs of.</param>
2543
/// <param name="destination">The <see cref="
TensorSpan
{T}"/> destination.</param>
2544
public static ref readonly
TensorSpan
<T> Abs<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2569
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the sin of.</param>
2571
public static ref readonly
TensorSpan
<T> Acos<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2594
/// Takes the inverse hyperbolic cosine of each element of the <see cref="
TensorSpan
{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2596
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the sin of.</param>
2598
public static ref readonly
TensorSpan
<T> Acosh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2621
/// Takes the inverse hyperbolic cosine divided by pi of each element of the <see cref="
TensorSpan
{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2625
public static ref readonly
TensorSpan
<T> AcosPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2648
/// Takes the inverse sin of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2652
public static ref readonly
TensorSpan
<T> Asin<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2675
/// Takes the inverse hyperbolic sine of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2679
public static ref readonly
TensorSpan
<T> Asinh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2702
/// Takes the inverse hyperbolic sine divided by pi of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2706
public static ref readonly
TensorSpan
<T> AsinPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2729
/// Takes the arc tangent of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2733
public static ref readonly
TensorSpan
<T> Atan<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2757
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2762
public static ref readonly
TensorSpan
<T> Atan2<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2784
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2789
public static ref readonly
TensorSpan
<T> Atan2<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
2811
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2816
public static ref readonly
TensorSpan
<T> Atan2<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2840
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/>, divides each element by pi, and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2845
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2854
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/>, divides each element by pi, and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2867
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/>, divides each element by pi, and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2872
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
2881
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/>, divides each element by pi, and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2894
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/>, divides each element by pi, and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2899
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2922
/// Takes the inverse hyperbolic tangent of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2926
public static ref readonly
TensorSpan
<T> Atanh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2949
/// Takes the inverse hyperbolic tangent divided by pi of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2953
public static ref readonly
TensorSpan
<T> AtanPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2966
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the mean of.</param>
2993
/// Computes the element-wise cube root of the input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2997
public static ref readonly
TensorSpan
<T> Cbrt<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3020
/// Computes the element-wise ceiling of the input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3024
public static ref readonly
TensorSpan
<T> Ceiling<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3049
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3052
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3054
public static ref readonly
TensorSpan
<TTo> ConvertChecked<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3080
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3083
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3085
public static ref readonly
TensorSpan
<TTo> ConvertSaturating<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3111
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3114
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3116
public static ref readonly
TensorSpan
<TTo> ConvertTruncating<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3159
public static ref readonly
TensorSpan
<T> CopySign<T>(scoped in ReadOnlyTensorSpan<T> x, T sign, in
TensorSpan
<T> destination)
3168
/// Computes the element-wise result of copying the sign from one number to another number in the specified tensors and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3173
public static ref readonly
TensorSpan
<T> CopySign<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> sign, in
TensorSpan
<T> destination)
3196
/// Takes the cosine of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3200
public static ref readonly
TensorSpan
<T> Cos<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3223
/// Takes the hyperbolic cosine of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3227
public static ref readonly
TensorSpan
<T> Cosh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3275
/// <summary>Computes the element-wise cosine of the value in the specified tensor that has been multiplied by Pi and returns a new <see cref="
TensorSpan
{T}"/> with the results.</summary>
3290
public static ref readonly
TensorSpan
<T> CosPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3317
public static ref readonly
TensorSpan
<T> DegreesToRadians<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3376
public static ref readonly
TensorSpan
<T> Exp<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3403
public static ref readonly
TensorSpan
<T> Exp10<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3426
public static ref readonly
TensorSpan
<T> Exp10M1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3449
public static ref readonly
TensorSpan
<T> Exp2<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3472
public static ref readonly
TensorSpan
<T> Exp2M1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3495
public static ref readonly
TensorSpan
<T> ExpM1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3518
public static ref readonly
TensorSpan
<T> Floor<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3549
public static ref readonly
TensorSpan
<T> Hypot<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3576
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3599
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
3622
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3645
public static ref readonly
TensorSpan
<int> ILogB<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<int> destination)
3799
public static ref readonly
TensorSpan
<T> LeadingZeroCount<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3822
/// Takes the natural logarithm of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3826
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3849
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3872
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
3895
/// Takes the base 10 logarithm of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3899
public static ref readonly
TensorSpan
<T> Log10<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3922
/// Takes the base 10 logarithm plus 1 of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3926
public static ref readonly
TensorSpan
<T> Log10P1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3949
/// Takes the base 2 logarithm of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3953
public static ref readonly
TensorSpan
<T> Log2<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3976
/// Takes the base 2 logarithm plus 1 of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3980
public static ref readonly
TensorSpan
<T> Log2P1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4003
/// Takes the natural logarithm plus 1 of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
4007
public static ref readonly
TensorSpan
<T> LogP1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4047
public static ref readonly
TensorSpan
<T> Max<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4070
public static ref readonly
TensorSpan
<T> Max<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4110
public static ref readonly
TensorSpan
<T> MaxMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4133
public static ref readonly
TensorSpan
<T> MaxMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4173
public static ref readonly
TensorSpan
<T> MaxMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4196
public static ref readonly
TensorSpan
<T> MaxMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4236
public static ref readonly
TensorSpan
<T> MaxNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4259
public static ref readonly
TensorSpan
<T> MaxNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4299
public static ref readonly
TensorSpan
<T> Min<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4322
public static ref readonly
TensorSpan
<T> Min<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4362
public static ref readonly
TensorSpan
<T> MinMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4385
public static ref readonly
TensorSpan
<T> MinMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4425
public static ref readonly
TensorSpan
<T> MinMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4448
public static ref readonly
TensorSpan
<T> MinMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4488
public static ref readonly
TensorSpan
<T> MinNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4511
public static ref readonly
TensorSpan
<T> MinNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4548
public static ref readonly
TensorSpan
<T> PopCount<T>(scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4573
public static ref readonly
TensorSpan
<T> Pow<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4596
public static ref readonly
TensorSpan
<T> Pow<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4619
public static ref readonly
TensorSpan
<T> Pow<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4654
public static ref readonly
TensorSpan
<T> RadiansToDegrees<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4677
public static ref readonly
TensorSpan
<T> Reciprocal<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4702
public static ref readonly
TensorSpan
<T> RootN<T>(scoped in ReadOnlyTensorSpan<T> x, int n, in
TensorSpan
<T> destination)
4729
public static ref readonly
TensorSpan
<T> RotateLeft<T>(scoped in ReadOnlyTensorSpan<T> x, int rotateAmount, in
TensorSpan
<T> destination)
4756
public static ref readonly
TensorSpan
<T> RotateRight<T>(scoped in ReadOnlyTensorSpan<T> x, int rotateAmount, in
TensorSpan
<T> destination)
4779
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4804
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, int digits, MidpointRounding mode, in
TensorSpan
<T> destination)
4827
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, int digits, in
TensorSpan
<T> destination)
4850
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, MidpointRounding mode, in
TensorSpan
<T> destination)
4873
public static ref readonly
TensorSpan
<T> Sigmoid<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4896
/// Takes the sin of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
4900
public static ref readonly
TensorSpan
<T> Sin<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4923
public static ref readonly
TensorSpan
<T> Sinh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4946
public static ref readonly
TensorSpan
<T> SinPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4972
public static ref readonly
TensorSpan
<T> SoftMax<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4998
/// Takes the square root of each element of the <paramref name="x"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
5002
public static ref readonly
TensorSpan
<T> Sqrt<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5015
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the standard deviation of.</param>
5072
public static ref readonly
TensorSpan
<T> Tan<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5095
public static ref readonly
TensorSpan
<T> Tanh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5118
public static ref readonly
TensorSpan
<T> TanPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5141
public static ref readonly
TensorSpan
<T> TrailingZeroCount<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5164
public static ref readonly
TensorSpan
<T> Truncate<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
System\Numerics\Tensors\netcore\Tensor.op_OnesComplement.cs (4)
26
public static ref readonly
TensorSpan
<T> OnesComplement<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
53
extension<TScalar>(
TensorSpan
<TScalar>)
57
public static Tensor<TScalar> operator ~(in
TensorSpan
<TScalar> tensor) => OnesComplement<TScalar>(tensor);
System\Numerics\Tensors\netcore\Tensor.op_UnaryNegation.cs (4)
24
public static ref readonly
TensorSpan
<T> Negate<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
51
extension<TScalar>(
TensorSpan
<TScalar>)
55
public static Tensor<TScalar> operator -(in
TensorSpan
<TScalar> tensor) => Negate<TScalar>(tensor);
System\Numerics\Tensors\netcore\Tensor.op_UnaryPlus.cs (3)
27
extension<TScalar>(
TensorSpan
<TScalar>)
31
public static
TensorSpan
<TScalar> operator +(in
TensorSpan
<TScalar> tensor) => tensor;
System\Numerics\Tensors\netcore\Tensor_1.cs (14)
80
/// <inheritdoc cref="
TensorSpan
{T}.this[ReadOnlySpan{nint}]" />
86
/// <inheritdoc cref="
TensorSpan
{T}.this[ReadOnlySpan{NIndex}]" />
92
/// <inheritdoc cref="
TensorSpan
{T}.this[ReadOnlySpan{NRange}]" />
131
public static implicit operator
TensorSpan
<T>(Tensor<T> tensor) => tensor.AsTensorSpan();
133
/// <inheritdoc cref="
TensorSpan
{T}.implicit operator ReadOnlyTensorSpan{T}(in
TensorSpan
{T})" />
149
public
TensorSpan
<T> AsTensorSpan() => new TensorSpan<T>(ref Unsafe.Add(ref MemoryMarshal.GetArrayDataReference(_values), _start), in _shape);
152
public
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<nint> startIndexes) => AsTensorSpan().Slice(startIndexes);
155
public
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<NIndex> startIndexes) => AsTensorSpan().Slice(startIndexes);
158
public
TensorSpan
<T> AsTensorSpan(params scoped ReadOnlySpan<NRange> ranges) => AsTensorSpan().Slice(ranges);
163
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.CopyTo(in
TensorSpan
{T})" />
164
public void CopyTo(scoped in
TensorSpan
<T> destination)
273
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.TryCopyTo(in
TensorSpan
{T})" />
274
public bool TryCopyTo(scoped in
TensorSpan
<T> destination) => AsReadOnlyTensorSpan().TryCopyTo(destination);
System\Numerics\Tensors\netcore\TensorDimensionSpan_1.cs (5)
14
private readonly
TensorSpan
<T> _tensor;
19
internal TensorDimensionSpan(
TensorSpan
<T> tensor, int dimension)
42
public
TensorSpan
<T> this[nint index]
66
public ref struct Enumerator : IEnumerator<
TensorSpan
<T>>
78
public readonly
TensorSpan
<T> Current => _span[_index];
System\Numerics\Tensors\netcore\TensorOperation.cs (12)
13
public static void Invoke<TOperation, T>(in
TensorSpan
<T> x)
89
public static void Invoke<TOperation, TArg, TResult>(in
TensorSpan
<TResult> destination, TArg scalar)
106
public static void Invoke<TOperation, TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, in
TensorSpan
<TResult> destination)
127
public static void ReverseInvoke<TOperation, TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, in
TensorSpan
<TResult> destination)
194
public static void Invoke<TOperation, TArg1, TArg2, TResult>(in ReadOnlyTensorSpan<TArg1> x, in ReadOnlyTensorSpan<TArg2> y, in
TensorSpan
<TResult> destination)
219
public static void Invoke<TOperation, TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, in ReadOnlyTensorSpan<TArg> y, in
TensorSpan
<TResult> destination)
248
public static void Invoke<TOperation, TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, TArg y, in
TensorSpan
<TResult> destination)
252
public static void Invoke<TOperation, TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, int y, in
TensorSpan
<TResult> destination)
255
public static void Invoke<TOperation, TArg1, TArg2, TResult>(in ReadOnlyTensorSpan<TArg1> x, TArg2 y, in
TensorSpan
<TResult> destination)
277
public static void Invoke<TOperation, TArg, TResult>(TArg x, in ReadOnlyTensorSpan<TArg> y, in
TensorSpan
<TResult> destination)
335
public static void ValidateCompatibility<TArg, TResult>(in ReadOnlyTensorSpan<TArg> x, in
TensorSpan
<TResult> destination)
342
public static void ValidateCompatibility<TArg1, TArg2, TResult>(in ReadOnlyTensorSpan<TArg1> x, in ReadOnlyTensorSpan<TArg2> y, in
TensorSpan
<TResult> destination)
System\Numerics\Tensors\netcore\TensorSpan_1.cs (43)
24
public readonly ref struct TensorSpan<T> : ITensor<
TensorSpan
<T>, T>
27
public static
TensorSpan
<T> Empty => default;
163
public
TensorSpan
<T> this[params scoped ReadOnlySpan<NRange> ranges]
196
public static bool operator ==(in
TensorSpan
<T> left, in
TensorSpan
<T> right)
201
public static bool operator !=(in
TensorSpan
<T> left, in
TensorSpan
<T> right) => !(left == right);
206
public static implicit operator
TensorSpan
<T>(T[]? array) => new TensorSpan<T>(array);
211
public static implicit operator ReadOnlyTensorSpan<T>(scoped in
TensorSpan
<T> tensor) =>
229
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.CopyTo(in
TensorSpan
{T})" />
230
public void CopyTo(scoped in
TensorSpan
<T> destination)
299
public
TensorSpan
<T> Slice(params scoped ReadOnlySpan<nint> startIndexes)
309
public
TensorSpan
<T> Slice(params scoped ReadOnlySpan<NIndex> startIndexes)
319
public
TensorSpan
<T> Slice(params scoped ReadOnlySpan<NRange> ranges)
334
/// <inheritdoc cref="IReadOnlyTensor{TSelf, T}.TryCopyTo(in
TensorSpan
{T})" />
335
public bool TryCopyTo(scoped in
TensorSpan
<T> destination) => AsReadOnlyTensorSpan().TryCopyTo(destination);
390
ref readonly T IReadOnlyTensor<
TensorSpan
<T>, T>.this[params scoped ReadOnlySpan<NIndex> indexes] => ref this[indexes];
392
ref readonly T IReadOnlyTensor<
TensorSpan
<T>, T>.this[params scoped ReadOnlySpan<nint> indexes] => ref this[indexes];
394
ReadOnlyTensorDimensionSpan<T> IReadOnlyTensor<
TensorSpan
<T>, T>.GetDimensionSpan(int dimension) => GetDimensionSpan(dimension);
396
ref readonly T IReadOnlyTensor<
TensorSpan
<T>, T>.GetPinnableReference() => ref GetPinnableReference();
398
ReadOnlySpan<T> IReadOnlyTensor<
TensorSpan
<T>, T>.GetSpan(scoped ReadOnlySpan<nint> startIndexes, int length) => AsReadOnlyTensorSpan().GetSpan(startIndexes, length);
400
ReadOnlySpan<T> IReadOnlyTensor<
TensorSpan
<T>, T>.GetSpan(scoped ReadOnlySpan<NIndex> startIndexes, int length) => AsReadOnlyTensorSpan().GetSpan(startIndexes, length);
402
TensorSpan
<T> IReadOnlyTensor<
TensorSpan
<T>, T>.ToDenseTensor()
404
TensorSpan
<T> result = this;
447
static
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.CreateFromShape(scoped ReadOnlySpan<nint> lengths, bool pinned) => Tensor.CreateFromShape<T>(lengths, pinned);
449
static
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.CreateFromShape(scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides, bool pinned) => Tensor.CreateFromShape<T>(lengths, strides, pinned);
451
static
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.CreateFromShapeUninitialized(scoped ReadOnlySpan<nint> lengths, bool pinned) => Tensor.CreateFromShapeUninitialized<T>(lengths, pinned);
453
static
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.CreateFromShapeUninitialized(scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides, bool pinned) => Tensor.CreateFromShapeUninitialized<T>(lengths, strides, pinned);
455
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.AsTensorSpan() => this;
457
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.AsTensorSpan(params scoped ReadOnlySpan<nint> startIndexes) => Slice(startIndexes);
459
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.AsTensorSpan(params scoped ReadOnlySpan<NIndex> startIndexes) => Slice(startIndexes);
461
TensorSpan
<T> ITensor<
TensorSpan
<T>, T>.AsTensorSpan(params scoped ReadOnlySpan<NRange> ranges) => Slice(ranges);
466
private readonly
TensorSpan
<T> _span;
471
internal Enumerator(
TensorSpan
<T> span)
System\Numerics\Tensors\netcore\TensorSpanDebugView.cs (1)
12
public TensorSpanDebugView(
TensorSpan
<T> span)
System\Runtime\InteropServices\TensorMarshal.cs (3)
9
/// <summary>Provides methods to interoperate with <see cref="Tensor{T}" />, <see cref="
TensorSpan
{T}" />, and <see cref="ReadOnlyTensorSpan{T}" />.</summary>
21
public static
TensorSpan
<T> CreateTensorSpan<T>(scoped ref T data, nint dataLength, scoped ReadOnlySpan<nint> lengths, scoped ReadOnlySpan<nint> strides, bool pinned)
45
public static ref T GetReference<T>(in
TensorSpan
<T> tensorSpan)