clash-lib-1.0.0: prims/vhdl/Clash_Class_Exp.json
[
{
"BlackBox": {
"name": "Clash.Class.Exp.expIndex#",
"kind": "Expression",
"type": "expIndex# :: KnownNat m => Index m -> SNat n -> Index (m^n)",
"template": "~DEVNULL[~ARG[0]]to_unsigned(to_integer(~ARG[1]) ** ~LIT[2], ~SIZE[~TYPO])",
"warning": "Exponentiation is only supported on relatively small constructs (< 32 bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593."
}
},
{
"BlackBox": {
"name": "Clash.Class.Exp.expSigned#",
"kind": "Expression",
"type": "expSigned# :: KnownNat m => Signed m -> SNat n -> Signed (m*n)",
"template": "~DEVNULL[~ARG[0]]to_signed(to_integer(~ARG[1]) ** ~LIT[2], ~SIZE[~TYPO])",
"warning": "Exponentiation is only supported on relatively small constructs (< 32 bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593."
}
},
{
"BlackBox": {
"name": "Clash.Class.Exp.expUnsigned#",
"kind": "Expression",
"type": "expUnsigned# :: KnownNat m => Unsigned m -> SNat n -> Unsigned (m*n)",
"template": "~DEVNULL[~ARG[0]]to_unsigned(to_integer(~ARG[1]) ** ~LIT[2], ~SIZE[~TYPO])",
"warning": "Exponentiation is only supported on relatively small constructs (< 32 bits). Ideally, Clash should have constant folded your expression. See https://github.com/clash-lang/clash-compiler/issues/593."
}
}
]