IntP

dfhdl.core.IntParam$package.IntP
object IntP

Attributes

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

Members list

Type members

Classlikes

object Sig

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Sig.type
sealed trait Sig

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Sig1[F, A]
trait Sig2[F, A, B]
sealed trait Sig1[F <: Op, A <: IntP] extends Sig

Attributes

Supertypes
trait Sig
class Object
trait Matchable
class Any
sealed trait Sig2[F <: Op, A <: IntP, B <: IntP] extends Sig

Attributes

Supertypes
trait Sig
class Object
trait Matchable
class Any
trait ToInt2[T <: IntP]

Attributes

Supertypes
class Object
trait Matchable
class Any

Types

type %[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => L % R case Any => Sig2[%.type, L, R] }
type *[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => L * R case Any => Sig2[*.type, L, R] }
type +[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => L + R case Any => Sig2[+.type, L, R] }
type -[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => L - R case Any => Sig2[-.type, L, R] }
type /[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => L / R case Any => Sig2[/.type, L, R] }
type CLog2[T <: IntP] = T match { case Int => 32 - NumberOfLeadingZeros[T - 1] case Any => Sig1[clog2.type, T] }
infix type Max[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => Max[L, R] case Any => Sig2[max.type, L, R] }
infix type Min[L <: IntP, R <: IntP] = (L, R) match { case (Int, Int) => Min[L, R] case Any => Sig2[min.type, L, R] }
type ToInt[V <: IntP] = V match { case Int => V <:! Int case DFConstInt32 => Int }