pub struct Line<P> { /* private fields */ }
Expand description
A contiguous list of elements that supports auto-vectorized operations.
Implementations§
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
pub fn __expand_new( scope: &mut Scope, val: <P as CubeType>::ExpandType, ) -> <Self as CubeType>::ExpandType
pub fn __expand_line_size( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> u32
Source§impl<P: CubePrimitive + Into<ExpandElementTyped<P>>> Line<P>
impl<P: CubePrimitive + Into<ExpandElementTyped<P>>> Line<P>
Sourcepub fn fill(self, value: P) -> Self
pub fn fill(self, value: P) -> Self
Fill the line with the given value.
If you want to fill the line with different values, consider using the index API instead.
let mut line = Line::<u32>::empty(2);
line[0] = 1;
line[1] = 2;
pub fn __expand_fill( scope: &mut Scope, this: <Self as CubeType>::ExpandType, value: <P as CubeType>::ExpandType, ) -> <Self as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn empty(size: u32) -> Self
pub fn empty(size: u32) -> Self
Create an empty line of the given size.
Note that a line can’t change in size once it’s fixed.
pub fn __expand_empty( scope: &mut Scope, size: u32, ) -> <Self as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn size(&self) -> u32
pub fn size(&self) -> u32
Get the number of individual elements a line contains.
The size is available at comptime and may be used in combination with the comptime macro.
// The if statement is going to be executed at comptime.
if comptime!(line.size() == 1) {
}
Sourcepub fn __expand_size(scope: &mut Scope, element: ExpandElementTyped<P>) -> u32
pub fn __expand_size(scope: &mut Scope, element: ExpandElementTyped<P>) -> u32
Expand function of size.
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn equal(self, other: Self) -> Line<bool>
pub fn equal(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being equal to the second line.
pub fn __expand_equal( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn not_equal(self, other: Self) -> Line<bool>
pub fn not_equal(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being not equal to the second line.
pub fn __expand_not_equal( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn less_than(self, other: Self) -> Line<bool>
pub fn less_than(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being less than the second line.
pub fn __expand_less_than( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn greater_than(self, other: Self) -> Line<bool>
pub fn greater_than(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being greater than the second line.
pub fn __expand_greater_than( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn less_equal(self, other: Self) -> Line<bool>
pub fn less_equal(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being less than or equal to the second line.
pub fn __expand_less_equal( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CubePrimitive> Line<P>
impl<P: CubePrimitive> Line<P>
Sourcepub fn greater_equal(self, other: Self) -> Line<bool>
pub fn greater_equal(self, other: Self) -> Line<bool>
Return a new line with the element-wise comparison of the first line being greater than or equal to the second line.
pub fn __expand_greater_equal( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl Line<bool>
impl Line<bool>
Sourcepub fn and(self, other: Self) -> Line<bool>
pub fn and(self, other: Self) -> Line<bool>
Return a new line with the element-wise and of the lines
pub fn __expand_and( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl Line<bool>
impl Line<bool>
Sourcepub fn or(self, other: Self) -> Line<bool>
pub fn or(self, other: Self) -> Line<bool>
Return a new line with the element-wise and of the lines
pub fn __expand_or( scope: &mut Scope, this: <Self as CubeType>::ExpandType, other: <Self as CubeType>::ExpandType, ) -> <Line<bool> as CubeType>::ExpandType
Source§impl<P: CountOnes> Line<P>
impl<P: CountOnes> Line<P>
pub fn count_ones(self) -> Line<u32>
pub fn __expand_count_ones( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <Line<u32> as CubeType>::ExpandType
Source§impl<P: LeadingZeros> Line<P>
impl<P: LeadingZeros> Line<P>
pub fn leading_zeros(self) -> Line<u32>
pub fn __expand_leading_zeros( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <Line<u32> as CubeType>::ExpandType
Source§impl<P: FindFirstSet> Line<P>
impl<P: FindFirstSet> Line<P>
pub fn find_first_set(self) -> Line<u32>
pub fn __expand_find_first_set( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <Line<u32> as CubeType>::ExpandType
Trait Implementations§
Source§impl<P: CubePrimitive + Abs> Abs for Line<P>
impl<P: CubePrimitive + Abs> Abs for Line<P>
fn abs(x: Self) -> Self
fn __expand_abs( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P> AddAssign for Line<P>where
P: CubePrimitive + AddAssign,
impl<P> AddAssign for Line<P>where
P: CubePrimitive + AddAssign,
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moreSource§impl<P> BitAndAssign for Line<P>where
P: CubePrimitive + BitAndAssign,
impl<P> BitAndAssign for Line<P>where
P: CubePrimitive + BitAndAssign,
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&=
operation. Read moreSource§impl<P> BitOrAssign for Line<P>where
P: CubePrimitive + BitOrAssign,
impl<P> BitOrAssign for Line<P>where
P: CubePrimitive + BitOrAssign,
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|=
operation. Read moreSource§impl<P> BitXorAssign for Line<P>where
P: CubePrimitive + BitXorAssign,
impl<P> BitXorAssign for Line<P>where
P: CubePrimitive + BitXorAssign,
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^=
operation. Read moreSource§impl<P: CubePrimitive + BitwiseNot> BitwiseNot for Line<P>
impl<P: CubePrimitive + BitwiseNot> BitwiseNot for Line<P>
fn bitwise_not(x: Self) -> Self
fn __expand_bitwise_not( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Ceil> Ceil for Line<P>
impl<P: CubePrimitive + Ceil> Ceil for Line<P>
fn ceil(x: Self) -> Self
fn __expand_ceil( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Clamp> Clamp for Line<P>
impl<P: CubePrimitive + Clamp> Clamp for Line<P>
Source§fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
fn clamp(input: Self, min_value: Self, max_value: Self) -> Self
fn __expand_clamp( scope: &mut Scope, input: Self::ExpandType, min_value: Self::ExpandType, max_value: Self::ExpandType, ) -> Self::ExpandType
Source§impl<P: CubePrimitive> Clone for Line<P>
impl<P: CubePrimitive> Clone for Line<P>
Source§impl<P: CubePrimitive + Cos> Cos for Line<P>
impl<P: CubePrimitive + Cos> Cos for Line<P>
fn cos(x: Self) -> Self
fn __expand_cos( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<E: CubePrimitive> CubeIndex for Line<E>
impl<E: CubePrimitive> CubeIndex for Line<E>
type Output = E
fn cube_idx(&self, _i: u32) -> &Self::Output
fn expand_index( scope: &mut Scope, array: Self::ExpandType, index: ExpandElementTyped<u32>, ) -> <Self::Output as CubeType>::ExpandType
fn expand_index_unchecked( scope: &mut Scope, array: Self::ExpandType, index: ExpandElementTyped<u32>, ) -> <Self::Output as CubeType>::ExpandType
Source§impl<E: CubePrimitive> CubeIndexMut for Line<E>
impl<E: CubePrimitive> CubeIndexMut for Line<E>
fn cube_idx_mut(&mut self, _i: u32) -> &mut Self::Output
fn expand_index_mut( scope: &mut Scope, array: Self::ExpandType, index: ExpandElementTyped<u32>, value: <Self::Output as CubeType>::ExpandType, )
Source§impl<P: CubePrimitive> CubePrimitive for Line<P>
impl<P: CubePrimitive> CubePrimitive for Line<P>
Source§fn as_elem_native() -> Option<Elem>
fn as_elem_native() -> Option<Elem>
Source§fn as_elem_native_unchecked() -> Elem
fn as_elem_native_unchecked() -> Elem
Source§fn min_line_size(&self) -> Option<u8>
fn min_line_size(&self) -> Option<u8>
fn from_expand_elem(elem: ExpandElement) -> Self::ExpandType
fn is_supported<S: ComputeServer<Feature = Feature>, C: ComputeChannel<S>>( client: &ComputeClient<S, C>, ) -> bool
fn elem_size() -> u32
fn elem_size_bits() -> u32
fn __expand_elem_size(scope: &Scope) -> u32
fn __expand_elem_size_bits(scope: &Scope) -> u32
Source§impl<P: CubePrimitive> CubeType for Line<P>
impl<P: CubePrimitive> CubeType for Line<P>
type ExpandType = ExpandElementTyped<Line<P>>
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Source§impl<P> DivAssign for Line<P>where
P: CubePrimitive + DivAssign,
impl<P> DivAssign for Line<P>where
P: CubePrimitive + DivAssign,
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/=
operation. Read moreSource§impl<N: Numeric> Dot for Line<N>
impl<N: Numeric> Dot for Line<N>
fn dot(self, _rhs: Self) -> Self
fn __expand_dot( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Erf> Erf for Line<P>
impl<P: CubePrimitive + Erf> Erf for Line<P>
fn erf(x: Self) -> Self
fn __expand_erf( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Exp> Exp for Line<P>
impl<P: CubePrimitive + Exp> Exp for Line<P>
fn exp(x: Self) -> Self
fn __expand_exp( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive> ExpandElementIntoMut for Line<P>
impl<P: CubePrimitive> ExpandElementIntoMut for Line<P>
fn elem_into_mut(scope: &mut Scope, elem: ExpandElement) -> ExpandElement
Source§impl<P: CubePrimitive + Floor> Floor for Line<P>
impl<P: CubePrimitive + Floor> Floor for Line<P>
fn floor(x: Self) -> Self
fn __expand_floor( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Into<ExpandElementTyped<P>>> Into<ExpandElementTyped<Line<P>>> for Line<P>
impl<P: CubePrimitive + Into<ExpandElementTyped<P>>> Into<ExpandElementTyped<Line<P>>> for Line<P>
Source§fn into(self) -> ExpandElementTyped<Self>
fn into(self) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Log> Log for Line<P>
impl<P: CubePrimitive + Log> Log for Line<P>
fn log(x: Self) -> Self
fn __expand_log( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Log1p> Log1p for Line<P>
impl<P: CubePrimitive + Log1p> Log1p for Line<P>
fn log1p(x: Self) -> Self
fn __expand_log1p( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Max> Max for Line<P>
impl<P: CubePrimitive + Max> Max for Line<P>
fn max(self, _rhs: Self) -> Self
fn __expand_max( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Min> Min for Line<P>
impl<P: CubePrimitive + Min> Min for Line<P>
fn min(self, _rhs: Self) -> Self
fn __expand_min( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P> MulAssign for Line<P>where
P: CubePrimitive + MulAssign,
impl<P> MulAssign for Line<P>where
P: CubePrimitive + MulAssign,
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moreSource§impl<N: MulHi + CubePrimitive> MulHi for Line<N>
impl<N: MulHi + CubePrimitive> MulHi for Line<N>
fn mul_hi(self, _rhs: Self) -> Self
fn __expand_mul_hi( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P> PartialOrd for Line<P>where
P: CubePrimitive + PartialOrd,
impl<P> PartialOrd for Line<P>where
P: CubePrimitive + PartialOrd,
Source§impl<P: CubePrimitive + Powf> Powf for Line<P>
impl<P: CubePrimitive + Powf> Powf for Line<P>
fn powf(self, _rhs: Self) -> Self
fn __expand_powf( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Recip> Recip for Line<P>
impl<P: CubePrimitive + Recip> Recip for Line<P>
fn recip(x: Self) -> Self
fn __expand_recip( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Remainder> Remainder for Line<P>
impl<P: CubePrimitive + Remainder> Remainder for Line<P>
fn rem(self, _rhs: Self) -> Self
fn __expand_rem( scope: &mut Scope, lhs: ExpandElementTyped<Self>, rhs: ExpandElementTyped<Self>, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + ReverseBits> ReverseBits for Line<P>
impl<P: CubePrimitive + ReverseBits> ReverseBits for Line<P>
fn reverse_bits(x: Self) -> Self
fn __expand_reverse_bits( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Round> Round for Line<P>
impl<P: CubePrimitive + Round> Round for Line<P>
fn round(x: Self) -> Self
fn __expand_round( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P> ShlAssign for Line<P>where
P: CubePrimitive + ShlAssign,
impl<P> ShlAssign for Line<P>where
P: CubePrimitive + ShlAssign,
Source§fn shl_assign(&mut self, rhs: Self)
fn shl_assign(&mut self, rhs: Self)
<<=
operation. Read moreSource§impl<P> ShrAssign for Line<P>where
P: CubePrimitive + ShrAssign,
impl<P> ShrAssign for Line<P>where
P: CubePrimitive + ShrAssign,
Source§fn shr_assign(&mut self, rhs: Self)
fn shr_assign(&mut self, rhs: Self)
>>=
operation. Read moreSource§impl<P: CubePrimitive + Sin> Sin for Line<P>
impl<P: CubePrimitive + Sin> Sin for Line<P>
fn sin(x: Self) -> Self
fn __expand_sin( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + Sqrt> Sqrt for Line<P>
impl<P: CubePrimitive + Sqrt> Sqrt for Line<P>
fn sqrt(x: Self) -> Self
fn __expand_sqrt( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P> SubAssign for Line<P>where
P: CubePrimitive + SubAssign,
impl<P> SubAssign for Line<P>where
P: CubePrimitive + SubAssign,
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read moreSource§impl<P: CubePrimitive + Tanh> Tanh for Line<P>
impl<P: CubePrimitive + Tanh> Tanh for Line<P>
fn tanh(x: Self) -> Self
fn __expand_tanh( scope: &mut Scope, x: Self::ExpandType, ) -> ExpandElementTyped<Self>
Source§impl<P: CubePrimitive + NumCast> ToPrimitive for Line<P>
impl<P: CubePrimitive + NumCast> ToPrimitive for Line<P>
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned.Source§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned.Source§fn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned. Read moreimpl<P: CubePrimitive> Copy for Line<P>
impl<P: CubePrimitive> Eq for Line<P>
Auto Trait Implementations§
impl<P> Freeze for Line<P>where
P: Freeze,
impl<P> RefUnwindSafe for Line<P>where
P: RefUnwindSafe,
impl<P> Send for Line<P>where
P: Send,
impl<P> Sync for Line<P>where
P: Sync,
impl<P> Unpin for Line<P>where
P: Unpin,
impl<P> UnwindSafe for Line<P>where
P: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<P> Cast for Pwhere
P: CubePrimitive,
impl<P> Cast for Pwhere
P: CubePrimitive,
fn cast_from<From>(_value: From) -> Pwhere
From: CubePrimitive,
fn __expand_cast_from<From: CubePrimitive>( scope: &mut Scope, value: ExpandElementTyped<From>, ) -> <Self as CubeType>::ExpandType
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<P> CubeDebug for Pwhere
P: CubePrimitive,
impl<P> CubeDebug for Pwhere
P: CubePrimitive,
Source§fn set_debug_name(&self, scope: &mut Scope, name: &'static str)
fn set_debug_name(&self, scope: &mut Scope, name: &'static str)
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.