Ops

dfhdl.core.DFDecimal$package.DFXInt.Val.Ops
object Ops

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Ops.type

Members list

Type members

Types

type ArithOp = +.type | -.type | *.type | /.type | %.type | max.type | min.type

Value members

Concrete methods

def clog2[P, S <: Boolean, W <: IntP, N <: NativeType](dfVal: DFValTP[DFXInt[S, W, N], P])(using DFCG, ConstCheck[P]): DFValTP[DFXInt[S, W, N], P]

Givens

Givens

given evOpArithDFXInt[Op <: ArithOp, L, LS <: Boolean, LW <: IntP, LN <: NativeType, LP, LSM <: Boolean, LWM <: IntP, LI <: Boolean, R, RS <: Boolean, RW <: IntP, RN <: NativeType, RP, RSM <: Boolean, RWM <: IntP, RI <: Boolean](using icL: AuxMI[L, LS, LW, LN, LP, LSM, LWM, LI], icR: AuxMI[R, RS, RW, RN, RP, RSM, RWM, RI], op: ValueOf[Op])(using check: ArithCheck[LS, LW, LN, LSM, LWM, LI, RS, RW, RN, RSM, RWM, RI]): ExactOp2Aux[Op, DFC, DFValAny, L, R, DFValTP[DFXInt[LS, LW, LN], LP | RP]]
given evOpArithIntDFInt32[Op <: ArithOp, L <: Int, RP, R <: DFValTP[DFInt32, RP]](using op: ValueOf[Op]): ExactOp2Aux[Op, DFC, DFValAny, L, R, DFValTP[DFInt32, RP]]

Extensions

Extensions

extension [P, S <: Boolean, W <: IntP, N <: NativeType](lhs: DFValTP[DFXInt[S, W, N], P])
def toScalaBigInt(using DFC, ConstCheck[P]): BigInt
def toScalaInt(using DFC, ConstCheck[P]): Int
extension [L <: DFValAny](lhs: L)(using icL: Candidate[L])
def <[R](rhs: Exact[R])(using dfc: DFCG, op: Compare[DFXInt[icL.OutS, icL.OutW, icL.OutN], R, <.type, false]): DFValOf[DFBool]
def <=[R](rhs: Exact[R])(using dfc: DFCG, op: Compare[DFXInt[icL.OutS, icL.OutW, icL.OutN], R, <=.type, false]): DFValOf[DFBool]
def >[R](rhs: Exact[R])(using dfc: DFCG, op: Compare[DFXInt[icL.OutS, icL.OutW, icL.OutN], R, >.type, false]): DFValOf[DFBool]
def >=[R](rhs: Exact[R])(using dfc: DFCG, op: Compare[DFXInt[icL.OutS, icL.OutW, icL.OutN], R, >=.type, false]): DFValOf[DFBool]
extension [S <: Boolean, W <: IntP, N <: NativeType, P](lhs: DFValTP[DFXInt[S, W, N], P])
def <<(shift: Exact[W])(using dfc: DFCG): DFValTP[DFXInt[S, W, N], P | shift.tc.OutP]
def >>(shift: Exact[W])(using dfc: DFCG): DFValTP[DFXInt[S, W, N], P | shift.tc.OutP]
def resize[RW <: IntP](updatedWidth: IntParam[RW])(using dfc: DFCG, check: CheckNUB[S, RW]): DFValTP[DFXInt[S, RW, BitAccurate], P]
def truncate(using DFCG): DFValTP[DFXInt[S, Int, N], P]
extension [L <: Int](lhs: L)
def **[P](shift: DFValTP[DFInt32, P])(using dfc: DFCG): DFValTP[DFInt32, P]
def <[RS <: Boolean, RW <: Int, RN <: NativeType](rhs: DFValOf[DFXInt[RS, RW, RN]])(using es: Summon[L, lhs.type])(using dfc: DFCG, op: Compare[DFXInt[RS, RW, RN], es.Out, <.type, true]): DFValOf[DFBool]
def <<[P](shift: DFValTP[DFInt32, P])(using dfc: DFCG): DFValTP[DFInt32, P]
def <=[RS <: Boolean, RW <: Int, RN <: NativeType](rhs: DFValOf[DFXInt[RS, RW, RN]])(using es: Summon[L, lhs.type])(using dfc: DFCG, op: Compare[DFXInt[RS, RW, RN], es.Out, <=.type, true]): DFValOf[DFBool]
def >[RS <: Boolean, RW <: Int, RN <: NativeType](rhs: DFValOf[DFXInt[RS, RW, RN]])(using es: Summon[L, lhs.type])(using dfc: DFCG, op: Compare[DFXInt[RS, RW, RN], es.Out, >.type, true]): DFValOf[DFBool]
def >=[RS <: Boolean, RW <: Int, RN <: NativeType](rhs: DFValOf[DFXInt[RS, RW, RN]])(using es: Summon[L, lhs.type])(using dfc: DFCG, op: Compare[DFXInt[RS, RW, RN], es.Out, >=.type, true]): DFValOf[DFBool]
def >>[P](shift: DFValTP[DFInt32, P])(using dfc: DFCG): DFValTP[DFInt32, CONST | P]
extension [L <: DFValAny, LS <: Boolean, LW <: IntP, LN <: NativeType, LP, R, RS <: Boolean, RW <: IntP, RN <: NativeType, RP](lhs: L)(using icL: Aux[L, LS, LW, LN, LP])
def *^(rhs: ExactAux[R])(using dfc: DFC, icR: Aux[R, RS, RW, RN, RP])(using check: SignCheck[LS, RS, icR.IsScalaInt, false]): DFValTP[DFXInt[LS, LW + RW, BitAccurate], LP | RP]
def +^(rhs: ExactAux[R])(using dfc: DFC, icR: Aux[R, RS, RW, RN, RP])(using check: SignCheck[LS, RS, icR.IsScalaInt, false]): DFValTP[DFXInt[LS, Max[LW, RW] + 1, BitAccurate], LP | RP]
def -^(rhs: ExactAux[R])(using dfc: DFC, icR: Aux[R, RS, RW, RN, RP])(using check: SignCheck[LS, RS, icR.IsScalaInt, false]): DFValTP[DFXInt[LS, Max[LW, RW] + 1, BitAccurate], LP | RP]
extension [L <: Int](lhs: L)
def *^[RS <: Boolean, RW <: IntP, RN <: NativeType, RP](rhs: DFValTP[DFXInt[RS, RW, RN], RP])(using sL: Summon[L, lhs.type])(using icL: Candidate[sL.Out])(using dfc: DFCG, check: SignCheck[RS, icL.OutS, icL.IsScalaInt, true]): DFValTP[DFXInt[icL.OutS, icL.OutW + RW, BitAccurate], icL.OutP | RP]
def +^[RS <: Boolean, RW <: IntP, RN <: NativeType, RP](rhs: DFValTP[DFXInt[RS, RW, RN], RP])(using sL: Summon[L, lhs.type])(using icL: Candidate[sL.Out])(using dfc: DFCG, check: SignCheck[RS, icL.OutS, icL.IsScalaInt, true]): DFValTP[DFXInt[icL.OutS, Max[icL.OutW, RW] + 1, BitAccurate], icL.OutP | RP]
def -^[RS <: Boolean, RW <: IntP, RN <: NativeType, RP](rhs: DFValTP[DFXInt[RS, RW, RN], RP])(using sL: Summon[L, lhs.type])(using icL: Candidate[sL.Out])(using dfc: DFCG, check: SignCheck[RS, icL.OutS, icL.IsScalaInt, true]): DFValTP[DFXInt[icL.OutS, Max[icL.OutW, RW] + 1, BitAccurate], icL.OutP | RP]