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);
1515
TensorSpan<T> output = new
TensorSpan
<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, strides, tensor.IsPinned);
2026
TensorSpan<T> output = new
TensorSpan
<T>(ref tensor._reference, tensor._shape.LinearLength, lengths[..rank], strides[..rank], tensor.IsPinned);
2468
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)
366
/// Fills the given <see cref="
TensorSpan
{T}"/> with random data in a Gaussian normal distribution. <see cref="Random"/>
370
/// <param name="destination">The destination <see cref="
TensorSpan
{T}"/> where the data will be stored.</param>
373
public static ref readonly
TensorSpan
<T> FillGaussianNormalDistribution<T>(in
TensorSpan
<T> destination, Random? random = null) where T : IFloatingPoint<T>
390
TensorSpan
<T>.Enumerator enumerator = destination.GetEnumerator();
404
/// Fills the given <see cref="
TensorSpan
{T}"/> with random data in a uniform distribution. <see cref="Random"/>
408
/// <param name="destination">The destination <see cref="
TensorSpan
{T}"/> where the data will be stored.</param>
411
public static ref readonly
TensorSpan
<T> FillUniformDistribution<T>(in
TensorSpan
<T> destination, Random? random = null) where T : IFloatingPoint<T>
425
TensorSpan
<T>.Enumerator enumerator = destination.GetEnumerator();
440
/// 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."/>
444
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
455
/// 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."/>
460
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
461
public static ref readonly
TensorSpan
<bool> Equals<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
471
/// 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."/>
475
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
486
/// 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."/>
491
/// <returns>A <see cref="
TensorSpan
{Boolean}"/> where the value is true if the elements are equal and false if they are not.</returns>
492
public static ref readonly
TensorSpan
<bool> Equals<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
568
public static ref readonly
TensorSpan
<T> FilteredUpdate<T>(in this
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<bool> filter, T value)
582
public static ref readonly
TensorSpan
<T> FilteredUpdate<T>(in this
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<bool> filter, scoped in ReadOnlyTensorSpan<T> values)
620
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
655
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
685
public static ref readonly
TensorSpan
<bool> GreaterThan<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
801
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
836
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
866
public static ref readonly
TensorSpan
<bool> GreaterThanOrEqual<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
982
public static ref readonly
TensorSpan
<bool> LessThan<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1017
public static ref readonly
TensorSpan
<bool> LessThan<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
1047
public static ref readonly
TensorSpan
<bool> LessThan<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1163
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1198
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<bool> destination)
1228
public static ref readonly
TensorSpan
<bool> LessThanOrEqual<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<bool> destination)
1448
/// <param name="tensor"><see cref="
TensorSpan
{T}"/> you want to reshape.</param>
1450
public static
TensorSpan
<T> Reshape<T>(this scoped in
TensorSpan
<T> tensor, scoped ReadOnlySpan<nint> lengths)
1515
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, strides, tensor.IsPinned);
1524
/// <param name="tensor"><see cref="
TensorSpan
{T}"/> you want to reshape.</param>
1643
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1644
public static void ResizeTo<T>(scoped in Tensor<T> tensor, in
TensorSpan
<T> destination)
1653
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1654
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1655
public static void ResizeTo<T>(scoped in
TensorSpan
<T> tensor, in
TensorSpan
<T> destination)
1665
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/> with the desired new shape.</param>
1666
public static void ResizeTo<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
1685
TensorSpan
<T>.Enumerator dstEnumerator = destination.GetEnumerator();
1728
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1730
public static ref readonly
TensorSpan
<T> Reverse<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
1739
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
1742
public static ref readonly
TensorSpan
<T> ReverseDimension<T>(scoped in ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination, int dimension)
1781
public static bool SequenceEqual<T>(this scoped in
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<T> other)
1841
public static ref readonly
TensorSpan
<T> SetSlice<T>(this in
TensorSpan
<T> tensor, scoped in ReadOnlyTensorSpan<T> values, params scoped ReadOnlySpan<NRange> ranges)
1970
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to remove all dimensions of length 1.</param>
1971
public static
TensorSpan
<T> Squeeze<T>(this scoped in
TensorSpan
<T> tensor)
1980
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to remove dimension of length 1.</param>
1982
public static
TensorSpan
<T> SqueezeDimension<T>(this scoped in
TensorSpan
<T> tensor, int dimension)
2026
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, lengths[..rank], strides[..rank], tensor.IsPinned);
2146
public static ref readonly
TensorSpan
<T> Stack<T>(scoped in ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination)
2157
public static ref readonly
TensorSpan
<T> StackAlongDimension<T>(scoped ReadOnlySpan<Tensor<T>> tensors, in
TensorSpan
<T> destination, int dimension)
2365
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2366
public static bool TryBroadcastTo<T>(this Tensor<T> tensor, in
TensorSpan
<T> destination)
2375
/// <param name="tensor">Input <see cref="
TensorSpan
{T}"/>.</param>
2376
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2377
public static bool TryBroadcastTo<T>(in this
TensorSpan
<T> tensor, in
TensorSpan
<T> destination)
2387
/// <param name="destination">Destination <see cref="
TensorSpan
{T}"/>.</param>
2388
public static bool TryBroadcastTo<T>(in this ReadOnlyTensorSpan<T> tensor, in
TensorSpan
<T> destination)
2440
/// <param name="tensor">The <see cref="
TensorSpan
{T}"/> to add a dimension of length 1.</param>
2442
public static
TensorSpan
<T> Unsqueeze<T>(this scoped in
TensorSpan
<T> tensor, int dimension)
2468
TensorSpan
<T> output = new TensorSpan<T>(ref tensor._reference, tensor._shape.LinearLength, newLengths, newStrides, tensor.IsPinned);
2527
/// Takes the absolute value of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2529
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the abs of.</param>
2530
/// <param name="destination">The <see cref="
TensorSpan
{T}"/> destination.</param>
2531
public static ref readonly
TensorSpan
<T> Abs<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2556
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the sin of.</param>
2558
public static ref readonly
TensorSpan
<T> Acos<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2581
/// 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.
2583
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the sin of.</param>
2585
public static ref readonly
TensorSpan
<T> Acosh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2608
/// 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.
2612
public static ref readonly
TensorSpan
<T> AcosPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2635
/// Takes the inverse sin of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2639
public static ref readonly
TensorSpan
<T> Asin<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2662
/// 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.
2666
public static ref readonly
TensorSpan
<T> Asinh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2689
/// 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.
2693
public static ref readonly
TensorSpan
<T> AsinPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2716
/// Takes the arc tangent of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2720
public static ref readonly
TensorSpan
<T> Atan<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2744
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2749
public static ref readonly
TensorSpan
<T> Atan2<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2771
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2776
public static ref readonly
TensorSpan
<T> Atan2<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
2798
/// Takes the arc tangent of the two input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2803
public static ref readonly
TensorSpan
<T> Atan2<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2827
/// 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.
2832
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2841
/// 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.
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.
2859
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
2868
/// 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.
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.
2886
public static ref readonly
TensorSpan
<T> Atan2Pi<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
2909
/// 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.
2913
public static ref readonly
TensorSpan
<T> Atanh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2936
/// 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.
2940
public static ref readonly
TensorSpan
<T> AtanPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
2953
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the mean of.</param>
2980
/// Computes the element-wise cube root of the input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
2984
public static ref readonly
TensorSpan
<T> Cbrt<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3007
/// Computes the element-wise ceiling of the input <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3011
public static ref readonly
TensorSpan
<T> Ceiling<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3036
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3039
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3041
public static ref readonly
TensorSpan
<TTo> ConvertChecked<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3067
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3070
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3072
public static ref readonly
TensorSpan
<TTo> ConvertSaturating<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3098
/// Copies <paramref name="source"/> to a new <see cref="
TensorSpan
{TTo}"/> converting each <typeparamref name="TFrom"/>
3101
/// <param name="source">The input <see cref="
TensorSpan
{TFrom}"/>.</param>
3103
public static ref readonly
TensorSpan
<TTo> ConvertTruncating<TFrom, TTo>(scoped in ReadOnlyTensorSpan<TFrom> source, in
TensorSpan
<TTo> destination)
3146
public static ref readonly
TensorSpan
<T> CopySign<T>(scoped in ReadOnlyTensorSpan<T> x, T sign, in
TensorSpan
<T> destination)
3155
/// 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.
3160
public static ref readonly
TensorSpan
<T> CopySign<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> sign, in
TensorSpan
<T> destination)
3183
/// Takes the cosine of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3187
public static ref readonly
TensorSpan
<T> Cos<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3210
/// Takes the hyperbolic cosine of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3214
public static ref readonly
TensorSpan
<T> Cosh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3262
/// <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>
3277
public static ref readonly
TensorSpan
<T> CosPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3304
public static ref readonly
TensorSpan
<T> DegreesToRadians<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3363
public static ref readonly
TensorSpan
<T> Exp<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3390
public static ref readonly
TensorSpan
<T> Exp10<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3413
public static ref readonly
TensorSpan
<T> Exp10M1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3436
public static ref readonly
TensorSpan
<T> Exp2<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3459
public static ref readonly
TensorSpan
<T> Exp2M1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3482
public static ref readonly
TensorSpan
<T> ExpM1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3505
public static ref readonly
TensorSpan
<T> Floor<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3536
public static ref readonly
TensorSpan
<T> Hypot<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3563
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3586
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
3609
public static ref readonly
TensorSpan
<T> Ieee754Remainder<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3632
public static ref readonly
TensorSpan
<int> ILogB<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<int> destination)
3786
public static ref readonly
TensorSpan
<T> LeadingZeroCount<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3809
/// Takes the natural logarithm of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
3813
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3836
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
3859
public static ref readonly
TensorSpan
<T> Log<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
3882
/// 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.
3886
public static ref readonly
TensorSpan
<T> Log10<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3909
/// 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.
3913
public static ref readonly
TensorSpan
<T> Log10P1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3936
/// 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.
3940
public static ref readonly
TensorSpan
<T> Log2<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3963
/// 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.
3967
public static ref readonly
TensorSpan
<T> Log2P1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
3990
/// 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.
3994
public static ref readonly
TensorSpan
<T> LogP1<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4034
public static ref readonly
TensorSpan
<T> Max<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4057
public static ref readonly
TensorSpan
<T> Max<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4097
public static ref readonly
TensorSpan
<T> MaxMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4120
public static ref readonly
TensorSpan
<T> MaxMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4160
public static ref readonly
TensorSpan
<T> MaxMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4183
public static ref readonly
TensorSpan
<T> MaxMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4223
public static ref readonly
TensorSpan
<T> MaxNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4246
public static ref readonly
TensorSpan
<T> MaxNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4286
public static ref readonly
TensorSpan
<T> Min<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4309
public static ref readonly
TensorSpan
<T> Min<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4349
public static ref readonly
TensorSpan
<T> MinMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4372
public static ref readonly
TensorSpan
<T> MinMagnitude<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4412
public static ref readonly
TensorSpan
<T> MinMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4435
public static ref readonly
TensorSpan
<T> MinMagnitudeNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4475
public static ref readonly
TensorSpan
<T> MinNumber<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4498
public static ref readonly
TensorSpan
<T> MinNumber<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4535
public static ref readonly
TensorSpan
<T> PopCount<T>(scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4560
public static ref readonly
TensorSpan
<T> Pow<T>(scoped in ReadOnlyTensorSpan<T> x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4583
public static ref readonly
TensorSpan
<T> Pow<T>(scoped in ReadOnlyTensorSpan<T> x, T y, in
TensorSpan
<T> destination)
4606
public static ref readonly
TensorSpan
<T> Pow<T>(T x, scoped in ReadOnlyTensorSpan<T> y, in
TensorSpan
<T> destination)
4641
public static ref readonly
TensorSpan
<T> RadiansToDegrees<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4664
public static ref readonly
TensorSpan
<T> Reciprocal<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4689
public static ref readonly
TensorSpan
<T> RootN<T>(scoped in ReadOnlyTensorSpan<T> x, int n, in
TensorSpan
<T> destination)
4716
public static ref readonly
TensorSpan
<T> RotateLeft<T>(scoped in ReadOnlyTensorSpan<T> x, int rotateAmount, in
TensorSpan
<T> destination)
4743
public static ref readonly
TensorSpan
<T> RotateRight<T>(scoped in ReadOnlyTensorSpan<T> x, int rotateAmount, in
TensorSpan
<T> destination)
4766
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4791
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, int digits, MidpointRounding mode, in
TensorSpan
<T> destination)
4814
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, int digits, in
TensorSpan
<T> destination)
4837
public static ref readonly
TensorSpan
<T> Round<T>(scoped in ReadOnlyTensorSpan<T> x, MidpointRounding mode, in
TensorSpan
<T> destination)
4860
public static ref readonly
TensorSpan
<T> Sigmoid<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4883
/// Takes the sin of each element of the <see cref="ReadOnlyTensorSpan{T}"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
4887
public static ref readonly
TensorSpan
<T> Sin<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4910
public static ref readonly
TensorSpan
<T> Sinh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4933
public static ref readonly
TensorSpan
<T> SinPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4959
public static ref readonly
TensorSpan
<T> SoftMax<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
4985
/// Takes the square root of each element of the <paramref name="x"/> and returns a new <see cref="
TensorSpan
{T}"/> with the result.
4989
public static ref readonly
TensorSpan
<T> Sqrt<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5002
/// <param name="x">The <see cref="
TensorSpan
{T}"/> to take the standard deviation of.</param>
5059
public static ref readonly
TensorSpan
<T> Tan<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5082
public static ref readonly
TensorSpan
<T> Tanh<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5105
public static ref readonly
TensorSpan
<T> TanPi<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5128
public static ref readonly
TensorSpan
<T> TrailingZeroCount<T>(scoped in ReadOnlyTensorSpan<T> x, in
TensorSpan
<T> destination)
5151
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)